cpiNextParserClassName

目的

チェーン内の次のパーサー・クラス (もしあれば) の名前を戻すオプションの関数。 これによって、パーサーは、メッセージ内容の、次のセクションまたは残りを処理するパーサー・クラスの名前をブローカーに戻すことができます。 通常、単純な形式タイプのメッセージの場合、メッセージ内容パーサーは 1 つしかありません。 この場合、この関数は必ずしも提供する必要はありません。 複数のメッセージ・パーサーのある複雑な形式タイプのメッセージの場合、それぞれのパーサーは、buffer パラメーターに名前を戻すことによって、チェーンの次にあるものを識別する必要があります。 チェーンの最後のパーサーは、空ストリングを戻さなければなりません。

WebSphere Business Integration Message Broker が提供しているパーサーの名前を指定する場合、パーサーの正しいクラス名を使用しなければなりません。

定義されている場所 タイプ メンバー
CPI_VFT オプション iFpNextParserClassName

構文

void cpiNextParserClassName(
    CciParser*  parser,
    CciContext* context,
    CciChar*    buffer,
  int          size);

パラメーター

parser
パーサー・オブジェクトのアドレス (入力)。
context
プラグイン・コンテキストのアドレス (入力)。
buffer
パーサー・クラス名が入れられるバッファーのアドレス (入力)。
size
ブローカーによって提供される、バイト単位のバッファーの長さ (入力)。

戻り値

なし。

サンプル

この例は、サンプル・パーサー・ファイル BipSampPluginParser.c から取られています (732 行~ 756 行)。

void cpiNextParserClassName(
    CciParser*  parser,
    CciContext* context,
    CciChar*    buffer,
    int         size
){
    PARSER_CONTEXT_ST* pc = (PARSER_CONTEXT_ST *)context ;
    int                rc = 0;

            if (pc->trace) {
        fprintf(pc->tracefile, "PLUGIN: -> cpiNextParserClassName() parser=0x%x context=0x%x¥n",
                        parser, context);
              fflush(pc->tracefile);
  }

    /* Copy the name to the broker */
  CciCharNCpy(buffer, pc->iNextParserClassName, size);

            if (pc->trace) {
        fprintf(pc->tracefile, "PLUGIN: <- cpiNextParserClassName()¥n");
              fflush(pc->tracefile);
  }

    return;
}

関連概念
ユーザー定義のパーサー
ユーザー定義拡張機能

関連タスク
C でのパーサーの作成

関連資料
cpiNextParserCodedCharSetId
cpiNextParserEncoding
パーサー・インプリメンテーション関数