2017-07-06 6 views
0

私の要件の1つとしてOpen-vxオブジェクトノードを理解しようとしています。仕様は終わりましたが、API vxRemoveNode()とvxReleaseNode()の正確な違いを理解できませんでした。スペックはvxReleaseNode:OpenVXオブジェクトノードのAPI vxReleaseNodeとvxRemoveNodeの違いは何ですか?

"Releases a reference to a Node object. The object may not be garbage collected until its total reference count is zero." 

上記の文で2番目の点はありません。

私の理解によれば、vxRemoveNodeを退治すると、ノードはグラフから完全に削除されます。事後条件で

スペックでは、両方のAPIを呼び出した後、彼らは言及:

"After returning from this function the reference is zeroed"

は、これらのAPIの間の正確な違いを理解するために私を助けてください。

答えて

0

OpenVXを使用していません。これは私が文書から理解するものである:

  • vx_status VX_API_CALL vxReleaseNode(vx_node * node)nodevx_nodeオブジェクトがこのオブジェクトを参照するこれ以上の変数が存在しないときに収集完全にゴミになり、vx_nodeオブジェクトをもう指していません。 nodeポインタは、呼び出しの後にゼロに設定されます。
  • vx_status VX_API_CALL vxRemoveNode(vx_node * node):グラフからvx_nodeオブジェクトを削除します。nodeは、コール後に0に設定されます。
+0

vxRemoveNodeを使用してノードを削除した場合、他のグラフでも使用できますが、vxReleaseNodeを使用してそのノードをリリースすると、そのノードを再作成する必要があります。 – Hemant

+0

@Hemant私は "反対"を理解しています: 'vxReleaseNode'は現在の参照のみを削除/解放しますが、' vxRemoveNode'はグラフからノードを完全に削除します。しかし、あなたは自分自身を試してみるべきです。 – Catree