ImqBinary C++ クラス

このクラスは、ImqMessage の accounting tokencorrelation id、および message id 値に使用できる 2 進バイト・アレイをカプセル化します。 これにより割り当て、コピー、および比較が容易になります。

図1: ImqBinary クラス
ImqBinary クラスとその親クラス ImqItemを示した Booch のクラス体系図。

オブジェクトの属性

データ
2 進データのバイト・アレイ。 初期値はヌルです。
data length
バイト数。 初期値はゼロです。
data pointer
data の最初のバイトのアドレス。 初期値はゼロです。

コンストラクター

ImqBinary( );
デフォルトのコンストラクター。
ImqBinary( const ImqBinary & binary );
コピー・コンストラクター。
ImqBinary( const void *データconst size_t長さ );
length バイトを dataからコピーします。

多重定義された ImqItem メソッド

virtual ImqBoolean copyOut ( ImqMessage & msg );
data をメッセージ・バッファーにコピーし、既存の内容があれば置き換えます。 また、msg形式を MQFMT_NONE に設定します。

詳細については、ImqItem クラス・メソッドの説明を参照してください。

virtual ImqBoolean pasteIn ( ImqMessage & msg );
メッセージ・バッファーから残っているデータを転送し、既存の data を置き換えることにより data を設定します。

正常に実行されるためには、ImqMessage の format が MQFMT_NONE でなければなりません。

詳細については、ImqItem クラス・メソッドの説明を参照してください。

オブジェクト・メソッド (共有)

void operator = ( const ImqBinary & binary );
binary からバイトをコピーします。
ImqBoolean operator == ( const ImqBinary & binary );
このオブジェクトを binary と比較します。 等しくない場合は FALSE を返し、それ以外の場合は TRUE を返します。 2 つのオブジェクトが同じ data length をもっており、バイト数が一致する場合、2 つのオブジェクトは等しいといいます。
ImqBoolean copyOut( void * buffer, const size_t length, const char pad = 0 );
最大 length 分のバイトを data pointer から buffer へコピーします。 data length が 不十分であると、buffer 内の残りのスペースには pad 分のバイトが埋め込まれます。 length がゼロの場合は、buffer もゼロで構いません。 length が負であってはなりません。 正常に終了した場合は TRUE を返します。
size_t dataLength( ) const ;
data length を返します。
ImqBoolean setDataLength( const size_t length );
data length を設定します。 このメソッドの結果として data length が変更された場合、オブジェクト内のデータの初期設定は解除されます。 正常に終了した場合は TRUE を返します。
void * dataPointer( ) const ;
data pointer を返します。
ImqBoolean isNull( ) const ;
data length がゼロである場合、あるいは data バイトがすべてゼロである場合は TRUE を返します。 それ以外の場合は FALSE を返します。
ImqBoolean set( const void * buffer, const size_t length );
length バイトを bufferからコピーします。 正常に終了した場合は TRUE を返します。

オブジェクト・メソッド (保護)

void clear( );
data length を減らしてゼロにします。

理由コード

  • MQRC_NO_BUFFER
  • MQRC_STORAGE_NOT_AVAILABLE
  • MQRC_INCONSISTENT_FORMAT