20#ifndef RTC_CORBA_CDRMEMORYSTREAM_H
21#define RTC_CORBA_CDRMEMORYSTREAM_H
24#include <rtm/idl/DataPort_OpenRTMSkel.h>
105 template<
class ExDataType>
108#ifdef ORB_IS_ORBEXPRESS
120#elif defined(ORB_IS_TAO)
165 template<
class ExDataType>
168#ifdef ORB_IS_ORBEXPRESS
178#elif defined(ORB_IS_TAO)
181 TAO_InputCDR tao_cdr = TAO_InputCDR(
m_cdr);
275#ifdef ORB_IS_ORBEXPRESS
277#elif defined(ORB_IS_TAO)
323 void readCdrData(
unsigned char* buffer,
unsigned long length)
const;
340#ifdef ORB_IS_ORBEXPRESS
342#elif defined(ORB_IS_TAO)
343 for (
const ACE_Message_Block *i = rhs.
m_cdr.begin(); i !=
nullptr; i = i->cont())
345 m_cdr.write_octet_array_mb(i);
370#ifdef ORB_IS_ORBEXPRESS
373#elif defined(ORB_IS_TAO)
374 for (
const ACE_Message_Block *i = rhs.
m_cdr.begin(); i !=
nullptr; i = i->cont())
376 m_cdr.write_octet_array_mb(i);
386#ifdef ORB_IS_ORBEXPRESS
388#elif defined(ORB_IS_TAO)
414 template <
class DataType>
464 void init(
const coil::Properties& )
override
483 void writeData(
const unsigned char* buffer,
unsigned long length)
override
504 void readData(
unsigned char* buffer,
unsigned long length)
const override
649template <
class DataType>
Data Stream Buffer Base class
void CdrMemoryStreamInit()
CDRシリアライザの初期化関数
Definition CORBA_CdrMemoryStream.h:650
シリアライザのテンプレートクラス シリアライザを実装する場合は必ずこのクラスを継承する必要がある coil::GlobalFactory <RTC::ByteDataStream>にシリアライザを登録す...
Definition ByteDataStreamBase.h:200
CDRシリアライザ CDRマーシャリングに関わる関数を提供
Definition CORBA_CdrMemoryStream.h:66
cdrMemoryStream m_cdr
Definition CORBA_CdrMemoryStream.h:391
void writeCdrData(const unsigned char *buffer, unsigned long length)
このインスタンスのバッファにデータを書き込む
CORBA_CdrMemoryStream & operator=(const CORBA_CdrMemoryStream &rhs)
代入演算子
Definition CORBA_CdrMemoryStream.h:368
unsigned long getCdrDataLength() const
バッファの長さ取得
const unsigned char * getBuffer()
バッファのポインタ取得
void readCdrData(unsigned char *buffer, unsigned long length) const
引数のバッファにデータを書き込む
bool m_endian
Definition CORBA_CdrMemoryStream.h:393
bool serializeCDR(const ExDataType &data)
CDR符号化のテンプレート関数
Definition CORBA_CdrMemoryStream.h:106
cdrMemoryStream & getCdr()
cdrMemoryStreamオブジェクト取得
void setEndian(bool little_endian)
エンディアンの設定
CORBA_CdrMemoryStream()
コンストラクタ
bool deserializeCDR(ExDataType &data)
CDR復号化のテンプレート関数
Definition CORBA_CdrMemoryStream.h:166
CORBA_CdrMemoryStream(const CORBA_CdrMemoryStream &rhs)
コピーコンストラクタ
Definition CORBA_CdrMemoryStream.h:338
CORBAのCDRシリアライザの実装
Definition CORBA_CdrMemoryStream.h:416
~CORBA_CdrSerializer() override=default
仮想デストラクタ
void isLittleEndian(bool little_endian) override
エンディアンの設定
Definition CORBA_CdrMemoryStream.h:617
CORBA_CdrMemoryStream m_cdr
Definition CORBA_CdrMemoryStream.h:622
bool serialize(const DataType &data) override
データの符号化
Definition CORBA_CdrMemoryStream.h:542
bool deserialize(DataType &data) override
データの復号化
Definition CORBA_CdrMemoryStream.h:560
CORBA_CdrSerializer()=default
コンストラクタ
CORBA_CdrSerializer< DataType > & operator=(const CORBA_CdrSerializer< DataType > &rhs)
代入演算子
Definition CORBA_CdrMemoryStream.h:598
unsigned long getDataLength() const override
データの長さを取得
Definition CORBA_CdrMemoryStream.h:522
void init(const coil::Properties &) override
初期化関数(未使用)
Definition CORBA_CdrMemoryStream.h:464
void readData(unsigned char *buffer, unsigned long length) const override
引数のバッファにデータを書き込む
Definition CORBA_CdrMemoryStream.h:504
void writeData(const unsigned char *buffer, unsigned long length) override
保持しているバッファにデータを書き込む
Definition CORBA_CdrMemoryStream.h:483
void addSerializer(const std::string &marshalingtype)
GlobalFactoryにシリアライザを追加する
Definition ByteDataStreamBase.h:314