OpenDDS  Snapshot(2023/04/28-20:55)
Public Member Functions | Private Attributes | List of all members
OpenDDS::DCPS::MessageBlockHelper< T > Class Template Reference

#include <Serializer.h>

Collaboration diagram for OpenDDS::DCPS::MessageBlockHelper< T >:
Collaboration graph
[legend]

Public Member Functions

 MessageBlockHelper (const T &seq)
 
 MessageBlockHelper (T &seq)
 
 operator ACE_Message_Block * ()
 

Private Attributes

ACE_Data_Block db_
 
ACE_Message_Block mb_
 

Detailed Description

template<typename T>
class OpenDDS::DCPS::MessageBlockHelper< T >

This helper class can be used to construct ACE message blocks from IDL sequences of octet (or compatible substitutes) and be used with the Serializer to serialize/deserialize directly into the byte buffer. The sequence must have its length set before constructing this object. T should provide a length() method which is the size of the buffer and get_buffer() which returns a pointer to the underlying byte sequence.

Definition at line 332 of file Serializer.h.

Constructor & Destructor Documentation

◆ MessageBlockHelper() [1/2]

template<typename T>
OpenDDS::DCPS::MessageBlockHelper< T >::MessageBlockHelper ( const T &  seq)
inlineexplicit

This constructor receives an already populated OctetSeq so the write pointer is advanced

Definition at line 337 of file Serializer.h.

338  : db_(seq.length(), ACE_Message_Block::MB_DATA,
339  reinterpret_cast<const char*>(seq.get_buffer()),
340  0 /*alloc*/, 0 /*lock*/, ACE_Message_Block::DONT_DELETE, 0 /*db_alloc*/)
341  , mb_(&db_, ACE_Message_Block::DONT_DELETE, 0 /*mb_alloc*/)
342  {
343  mb_.wr_ptr(mb_.space());
344  }
char * wr_ptr(void) const
size_t space(void) const

◆ MessageBlockHelper() [2/2]

template<typename T>
OpenDDS::DCPS::MessageBlockHelper< T >::MessageBlockHelper ( T &  seq)
inlineexplicit

Definition at line 346 of file Serializer.h.

347  : db_(seq.length(), ACE_Message_Block::MB_DATA,
348  reinterpret_cast<const char*>(seq.get_buffer()),
349  0 /*alloc*/, 0 /*lock*/, ACE_Message_Block::DONT_DELETE, 0 /*db_alloc*/)
350  , mb_(&db_, ACE_Message_Block::DONT_DELETE, 0 /*mb_alloc*/)
351  {}

Member Function Documentation

◆ operator ACE_Message_Block *()

template<typename T>
OpenDDS::DCPS::MessageBlockHelper< T >::operator ACE_Message_Block * ( )
inline

Definition at line 353 of file Serializer.h.

353 { return &mb_; }

Member Data Documentation

◆ db_

template<typename T>
ACE_Data_Block OpenDDS::DCPS::MessageBlockHelper< T >::db_
private

Definition at line 356 of file Serializer.h.

◆ mb_

template<typename T>
ACE_Message_Block OpenDDS::DCPS::MessageBlockHelper< T >::mb_
private

Definition at line 357 of file Serializer.h.


The documentation for this class was generated from the following file: