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
485 m_cdr.writeCdrData(buffer, length);
504 void readData(
unsigned char* buffer,
unsigned long length)
const override
506 m_cdr.readCdrData(buffer, length);
524 return m_cdr.getCdrDataLength();
544 return m_cdr.serializeCDR(data);
562 return m_cdr.deserializeCDR(data);
619 m_cdr.setEndian(little_endian);
649template <
class DataType>
Data Stream Buffer Base class
void CdrMemoryStreamInit()
CDRシリアライザの初期化関数
Definition CORBA_CdrMemoryStream.h:650
ByteDataStream()=default
コンストラクタ
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_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
CORBA_CdrSerializer(const CORBA_CdrSerializer< DataType > &rhs)
コピーコンストラクタ
Definition CORBA_CdrMemoryStream.h:578
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