name パラメーターで指定したとおりにノード・クラスを定義します。 これは、factoryObject パラメーターとして指定されるノード・ファクトリーによってサポートされます。 この関数は、bipGetMessageFlowNodeFactory の実行時に LIL がロードされる際にノードによって呼び出されます。
cniGetAttribute および cniGetAttribute2 の両方、または cniGetAttributeName および cniGetAttributeName2 の両方をインプリメントすると、cniDefineNodeClass は CCI_INV_IMPL_FUNCTION で失敗します。
void cniDefineNodeClass( int* returnCode, CciFactory* factoryObject, CciChar* name, CNI_VFT* functbl);
vftable.iFpCreateNodeContext = _Transform_createNodeContext; vftable.iFpDeleteNodeContext = _deleteNodeContext; vftable.iFpGetAttributeName2 = _getAttributeName2; vftable.iFpSetAttribute = _setAttribute; vftable.iFpGetAttribute2 = _getAttribute2; vftable.iFpEvaluate = _Transform_evaluate; /* if not an input node */ vftable.iFRun = _run /* if an input node */
一般に、最後の 2 つの項目のうち 1 つだけを定義します。 つまり、メッセージ処理ノードの場合は vftable.iFpEvaluate = _Transform_evaluate; を定義し、 入力ノードの場合は vftable.iFpRun = _run; を定義します。