指定したエレメントのビット・ストリーム表現を取得します。 エレメントに関連したパーサーは、このエレメントとそのすべての子を直列化します。 結果は、呼び出し側によって割り振られたメモリーにコピーされます。 この関数は、メッセージ本体、つまりメッセージ・ルートの最後の子に対してのみ呼び出すことができます。 指定されたすべてのオプションがオリジナルのビット・ストリーム (たとえば、MQInput ノードによって WebSphere MQ キューから読み取られたビット・ストリーム) のオプションと一致しており、オリジナルのビット・ストリームを受け取った後でメッセージが変更されていない特殊なケースでは、このオリジナルのビット・ストリームはユーザーによって割り振られたメモリーにコピーされます。 この場合、パーサーは構文解析を行ってメッセージを再び直列化する必要はありません。
CciSize cniElementAsBitstream( int* returnCode, CciElement* element, const struct CciByteArray* value, CciChar* messageType, CciChar* messageSet, CciChar* messageFormat, int encoding, int ccsid, int options);
この例では、ノードはプロパティー・フォルダーを照会して、messageSet、messageType、messageFormat、エンコード、およびビット・ストリームを判別します。 次いで、この情報を使用して、メッセージ本体のビット・ストリーム表現を取得します。
inRootElement=cniRootElement(&rc, message); checkRC(rc); inBodyRoot = cniLastChild(&rc, inRootElement); checkRC(rc); inMQMD = cniSearchFirstChild(&rc, inRootElement, CCI_COMPARE_MODE_NAME, 0, CciString("MQMD",BIP_DEF_COMP_CCSID)); checkRC(rc); inPropertiesFolder =cniSearchFirstChild(&rc, inRootElement, CCI_COMPARE_MODE_NAME, 0, CciString("Properties",BIP_DEF_COMP_CCSID)); checkRC(rc); encodingElement = cniSearchFirstChild(&rc, inPropertiesFolder, CCI_COMPARE_MODE_NAME, 0, CciString("Encoding",BIP_DEF_COMP_CCSID)); checkRC(rc); ccsidElement = cniSearchFirstChild(&rc, inPropertiesFolder, CCI_COMPARE_MODE_NAME, 0, CciString("CodedCharSetId",BIP_DEF_COMP_CCSID)); checkRC(rc); messageSetElement = cniSearchFirstChild(&rc, inPropertiesFolder, CCI_COMPARE_MODE_NAME, 0, CciString("MessageSet",BIP_DEF_COMP_CCSID)); checkRC(rc); messageTypeElement = cniSearchFirstChild(&rc, inPropertiesFolder, CCI_COMPARE_MODE_NAME, 0, CciString("MessageType",BIP_DEF_COMP_CCSID)); checkRC(rc); messageFormatElement = cniSearchFirstChild(&rc, inPropertiesFolder, CCI_COMPARE_MODE_NAME, 0, CciString("MessageFormat",BIP_DEF_COMP_CCSID)); checkRC(rc); encoding = cniElementIntegerValue(&rc, encodingElement); checkRC(rc); ccsid = cniElementIntegerValue(&rc, ccsidElement); checkRC(rc); messageSetLength=512; messageSet = (CciChar*)malloc(messageSetLength * sizeof(CciChar)); messageSetLength = cniElementCharacterValue(&rc, messageSetElement, messageSet, messageSetLength); checkRC(rc); messageTypeLength=512; messageType = (CciChar*)malloc(messageTypeLength * sizeof(CciChar)); messageTypeLength = cniElementCharacterValue(&rc, messageTypeElement, messageType, messageTypeLength); checkRC(rc); messageFormatLength=512; messageFormat = (CciChar*)malloc(messageFormatLength * sizeof(CciChar)); messageFormatLength = cniElementCharacterValue(&rc, messageFormatElement, messageFormat, messageFormatLength); checkRC(rc); bitstream.size=512; bitstream.pointer=(CciByte*)malloc(sizeof(CciByte) * 512); bufLength = cniElementAsBitstream(&rc, inBodyRoot, &bitstream, messageType, messageSet, messageFormat, encoding, ccsid, 0); checkRC(rc); bitstream.size=bufLength; convertMessage(&bitstream.pointer, &bitstream.size);
注意 |
商標 |
ダウンロード |
ライブラリー |
技術サポート |
フィードバック
![]() ![]() |
as07885_ |