ImqBinaryクラス(C++)
このクラスは,ImqMessageTrackerクラスのaccounting token,correlation id,およびmessage id値に使用できる2進バイトアレイをカプセル化します。これによって,割り当て,コピー,および比較が容易になります。
- 〈このページの構成〉
インクルードファイル
このクラスを使用するときは,imqbin.hppファイルをインクルードしてください。
オブジェクト属性
● data
2進データのバイトアレイです。初期値はヌル文字です。
● data length
バイト数です。初期値はヌルです。
● data pointer
dataの最初のバイトのアドレスです。初期値はヌルです。
コンストラクタ
● ImqBinary( );
デフォルトのコンストラクタです。
● ImqBinary(const ImqBinary & binary );
コピーコンストラクタです。
● ImqBinary( const void * data, const size_t length );
dataからlength分のバイトをコピーします。
メソッド
● virtual ImqBoolean copyOut( ImqMessage & msg );
多重定義されたImqItemメソッドです。dataをメッセージバッファにコピーし,既存の内容があれば置き換えます。msg formatをMQFMT_NONEに設定します。
詳細については,「ImqItemクラス(C++)」の「メソッド」を参照してください。
● virtual ImqBoolean pasteIn( ImqMessage & msg );
多重定義されたImqItemメソッドです。メッセージバッファから残っているデータを転送し,既存のdataを置き換えることによって,dataを設定します。正常に実行されるためには,ImqMessage formatがMQFMT_NONEでなければなりません。
詳細については,「ImqItemクラス(C++)」の「メソッド」を参照してください。
● void operator = ( const ImqBinary & binary );
binary分のバイトをコピーします。
● ImqBoolean operator == ( const ImqBinary & binary );
このオブジェクトをbinaryと比較します。これらが等しくない場合は0を,それ以外の場合は「0でない」を返します。二つのオブジェクトが同じdatalengthを持っており,バイト数が一致する場合,二つのオブジェクトは等しいと見なされます。
● ImqBoolean copyOut( void * buffer, const size_t length, const char pad = 0 );
最大length分のバイトをdata pointerからbufferへコピーします。data lengthが不十分であるときは,buffer内の残りのスペースにはpad分のバイトが埋められます。lengthも0である場合は,bufferが0であると考えられます。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が0である場合,またはdataバイトがすべて0である場合はTRUEを返します。それ以外の場合はFALSEを返します。
● ImqBoolean set( const void * buffer, const size_t length );
bufferからlength分のバイトをコピーします。正常に実行された場合はTRUEを返します。
メソッド(protected)
● void clear( );
data lengthを減らして0にします。
理由コード
-
MQRC_NO_BUFFER
-
MQRC_STORAGE_NOT_AVAILABLE
理由コードの詳細については,「付録A 理由コード」,またはマニュアル「TP1/Message Queue プログラム作成リファレンス」を参照してください。