MQCFST構造体 - PCFストリング引数
MQCFST構造体は,次のフィールドから構成されます。
フィールド(データタイプ) | 内容 | 初期値 |
---|---|---|
Type(MQLONG型) | 構造体タイプ | MQCFT_STRING |
StrucLength(MQLONG型) | 構造体長 | MQCFST_STRUC_LENGTH_FIXED |
Parameter(MQLONG型) | 引数識別子 | 0 |
CodedCharSetId(MQLONG型) | 文字セット識別子 | MQCCSI_DEFAULT |
StringLength(MQLONG型) | 文字列長 | 0 |
String(MQCHAR×StringLength) | 文字列の値 | ヌル文字列 |
概要
MQCFST構造体には,命令または命令の応答であるメッセージに文字列引数を記述します。どちらの場合もメッセージ記述子のフォーマット名称は,MQFMT_ADMINです。
MQCFST構造体は,イベントメッセージでも使用します。この場合,メッセージ記述子のFormatフィールドはMQFMT_EVENTです。
MQCFST構造体は,ユーザ定義のメッセージデータにも使用できます。この場合,メッセージ記述子のFormatフィールドはMQFMT_PCFです。なお,この場合は,構造体の中にある一部のフィールドは意味を持たなくなります。大部分のフィールドには提供されている初期値を使用できますが,StrucLengthフィールド,StringLengthフィールド,およびStringフィールドにはアプリケーション側でデータに適した値を設定する必要があります。
構造体は可変長の文字列(Stringフィールド)で終了します。
フィールド
構造体を構成するフィールドについて,アルファベット順に説明します。
● CodedCharSetId(MQLONG型) 文字セット識別子
Stringフィールドのデータの文字セット識別子を指定します。
次の値を取ります。
このフィールドの初期値はMQCCSI_DEFAULTです。
● Parameter(MQLONG型) 引数識別子
TP1/Message Queueでは使用されません。
構造体に含まれる値の引数を示します。このフィールドに現れる値は,MQCFH構造体のCommandフィールドの値に依存します。
このフィールドの初期値は0です。
● String(MQCHAR × StringLength) 文字列の値
指定された文字列が引数の標準の長さより短い場合,省略された文字は空白に仮定します。指定された文字列が引数の標準の長さより長い場合,標準の長さを超える文字は空白でなければなりません。
このフィールドの初期値は,C言語ではヌル文字列です。
C言語の場合,このフィールドは1要素の配列として定義されます。構造体の格納域は動的に割り付けられる必要があります。また,ポインタはその中のフィールドを指すために使用される必要があります。
COBOL言語の場合,構造体の宣言にこのフィールドが入っていません。MQCFST構造体をより大きい構造体に含め,MQCFST構造体のあとに必要な長さのStringフィールドを宣言する必要があります。
● StringLength(MQLONG型) 文字列長
Stringフィールドにあるデータのバイトの長さを示します。0以上でなければなりません。この長さは4の倍数である必要はありません。
このフィールドの初期値は0です。
● StrucLength(MQLONG型) 構造体長
構造体の最後(Stringフィールド)の可変長文字列を含む,MQCFST構造体のバイト長です。長さは4の倍数でなければなりません。また,文字列を含むのに十分でなければなりません。
文字列の最終とStrucLengthフィールドで定義される長さ間のバイトは意味を持ちません。
次の定数は構造体の固定部分の長さを表し,Stringフィールドを除いた長さです。
このフィールドの初期値はMQCFST_STRUC_LENGTH_FIXEDです。
● Type(MQLONG型) 構造体タイプ
構造体は文字列引数を表すMQCFST構造体であることを示しています。
次の値を取ります。
このフィールドの初期値はMQCFT_STRINGです。