cniCreateNodeContext

ノード・オブジェクトのインスタンスのコンテキストを作成します。 これは、ノード・オブジェクトのインスタンスが構成される際にはいつでもメッセージ・ブローカーによって呼び出されます。 ノードは、ブローカーによってメッセージ・フローがデプロイされるときか、 または実行グループが開始されるときに構成されます。

この時点でノードは、以下の処理を担当します。
  1. (オプション) nodeName パラメーターが指定するノードの名前がファクトリーによってサポートされていることを確認します。
  2. 必要なノード・インスタンス固有のデータ域 (たとえば、コンテキスト、属性データ、およびターミナル) を割り振ります。
  3. ノードの処理に必要な任意の追加のリソースの獲得または初期化を実行します。
  4. コンテキストのアドレスを呼び出し関数に戻します。 このノード・インスタンスのインプリメンテーション関数が呼び出されるときにはいつでも、 適切なコンテキストがこの関数の引き数として渡されます。 これは、C で開発されるユーザー定義ノードは、 インスタンスごとのデータ域を指す固有の静的ポインターを保守する必要がないことを意味します。
定義されている場所 タイプ メンバー
CNI_VFT 必須 iFpCreateNodeContext

構文

CciContext* cniCreateNodeContext(
    CciFactory* factoryObject,
    CciChar*    nodeName,
  CciNode*     nodeObject);

パラメーター

factoryObject
作成されるノードを所有するファクトリー・オブジェクトのアドレス (入力)。
nodeName
作成されるノードの名前 (入力)。
nodeObject
直前に作成されたノード・オブジェクトのアドレス (入力)。

戻り値

成功した場合、ノード・コンテキストのアドレスが戻されます。 失敗した場合、ゼロの値 (CCI_NULL_ADDR) が戻されます。

    static char* functionName = (char *)"_Switch_createNodeContext()";
    NODE_CONTEXT_ST* p;

      /* Allocate a pointer to the local context */
      p = (NODE_CONTEXT_ST *)malloc(sizeof(NODE_CONTEXT_ST));

    if (p) {

        /* Clear the context area */
         memset(p, 0, sizeof(NODE_CONTEXT_ST));

        /* Save our node object pointer in our context */
    p->nodeObject = nodeObject;

        /* Save our node name */
    CciCharNCpy((CciChar*) &p->nodeName, nodeName, MAX_NODE_NAME_LEN);
}
      else
	 /* Handle errors */

関連概念
ユーザー定義の入力ノード
ユーザー定義のメッセージ処理ノード
ユーザー定義の出力ノード

関連タスク
C での入力ノードの作成
C でのメッセージ処理ノードの作成

関連資料
C 言語ノード・インプリメンテーション関数
cniDeleteNodeContext