OpenDDS
Snapshot(2023/04/07-19:43)
|
#include <Serializer.h>
Public Types | |
enum | Kind { KIND_CDR_BE = 0x0000, KIND_CDR_LE = 0x0001, KIND_PL_CDR_BE = 0x0002, KIND_PL_CDR_LE = 0x0003, KIND_CDR2_BE = 0x0006, KIND_CDR2_LE = 0x0007, KIND_D_CDR2_BE = 0x0008, KIND_D_CDR2_LE = 0x0009, KIND_PL_CDR2_BE = 0x000a, KIND_PL_CDR2_LE = 0x000b, KIND_XML = 0x0004, KIND_INVALID = 0xFFFF } |
Public Member Functions | |
EncapsulationHeader (Kind k=KIND_CDR_BE, ACE_CDR::UShort options=0) | |
EncapsulationHeader (const Encoding &enc, Extensibility ext, ACE_CDR::UShort options=0) | |
Kind | kind () const |
void | kind (Kind value) |
ACE_UINT16 | options () const |
void | options (ACE_UINT16 value) |
bool | is_good () const |
bool | from_encoding (const Encoding &encoding, Extensibility extensibility) |
bool | to_encoding (Encoding &encoding, Extensibility expected_extensibility) |
bool | to_any_encoding (Encoding &encoding) |
String | to_string () const |
Static Public Member Functions | |
static bool | set_encapsulation_options (Message_Block_Ptr &mb) |
Static Public Attributes | |
static const size_t | serialized_size = 4 |
static const size_t | padding_marker_byte_index = 3 |
static const size_t | padding_marker_alignment = 4 |
Private Member Functions | |
bool | to_encoding_i (Encoding &encoding, Extensibility *expected_extensibility_ptr) |
Private Attributes | |
Kind | kind_ |
The first two bytes as a big endian integer. More... | |
ACE_CDR::UShort | options_ |
The last two bytes as a big endian integer. More... | |
Represents the RTPS encapsulation header for serialized data.
This consists of 4 bytes that appear in front of the data. The first two bytes represents the kind of the encoding the data uses and the last two bytes (known as "options") are traditionally reserved.
See XTypes 1.3 7.6.3.1.2
Definition at line 230 of file Serializer.h.
The known possible values of the first 2 bytes represented as big endian integers.
Enumerator | |
---|---|
KIND_CDR_BE | |
KIND_CDR_LE | |
KIND_PL_CDR_BE | |
KIND_PL_CDR_LE | |
KIND_CDR2_BE | |
KIND_CDR2_LE | |
KIND_D_CDR2_BE | |
KIND_D_CDR2_LE | |
KIND_PL_CDR2_BE | |
KIND_PL_CDR2_LE | |
KIND_XML | |
KIND_INVALID |
Definition at line 236 of file Serializer.h.
OpenDDS::DCPS::EncapsulationHeader::EncapsulationHeader | ( | Kind | k = KIND_CDR_BE , |
ACE_CDR::UShort | options = 0 |
||
) |
Definition at line 98 of file Serializer.cpp.
OpenDDS::DCPS::EncapsulationHeader::EncapsulationHeader | ( | const Encoding & | enc, |
Extensibility | ext, | ||
ACE_CDR::UShort | options = 0 |
||
) |
Success can be verified using is_good()
Definition at line 104 of file Serializer.cpp.
References from_encoding(), kind_, and KIND_INVALID.
bool OpenDDS::DCPS::EncapsulationHeader::from_encoding | ( | const Encoding & | encoding, |
Extensibility | extensibility | ||
) |
Translate from an encoding, returns false if it failed.
Definition at line 113 of file Serializer.cpp.
References ACE_ERROR, OpenDDS::DCPS::APPENDABLE, OpenDDS::DCPS::ENDIAN_BIG, OpenDDS::DCPS::Encoding::endianness(), OpenDDS::DCPS::LogLevel::Error, OpenDDS::DCPS::FINAL, OpenDDS::DCPS::Encoding::kind(), kind_, KIND_CDR2_BE, KIND_CDR2_LE, KIND_CDR_BE, KIND_CDR_LE, KIND_D_CDR2_BE, KIND_D_CDR2_LE, KIND_PL_CDR2_BE, KIND_PL_CDR2_LE, KIND_PL_CDR_BE, KIND_PL_CDR_LE, OpenDDS::DCPS::Encoding::kind_to_string(), OpenDDS::DCPS::Encoding::KIND_XCDR1, OpenDDS::DCPS::Encoding::KIND_XCDR2, LM_ERROR, OpenDDS::DCPS::log_level, and OpenDDS::DCPS::MUTABLE.
Referenced by EncapsulationHeader(), and OpenDDS::DCPS::DataWriterImpl::serialize_sample().
ACE_INLINE bool OpenDDS::DCPS::EncapsulationHeader::is_good | ( | ) | const |
post-initialization test for a successful call to from_encoding during construction of this encapsulation header.
Definition at line 173 of file Serializer.inl.
References ACE_INLINE, and OpenDDS::DCPS::Encoding::kind_.
Referenced by OpenDDS::DCPS::operator<<().
ACE_INLINE EncapsulationHeader::Kind OpenDDS::DCPS::EncapsulationHeader::kind | ( | void | ) | const |
Definition at line 161 of file Serializer.inl.
References ACE_INLINE, and OpenDDS::DCPS::Encoding::kind_.
Referenced by OpenDDS::DCPS::operator<<(), and OpenDDS::DCPS::operator>>().
ACE_INLINE void OpenDDS::DCPS::EncapsulationHeader::kind | ( | Kind | value | ) |
Definition at line 167 of file Serializer.inl.
References ACE_INLINE, OpenDDS::DCPS::Encoding::kind_, and value.
ACE_INLINE ACE_UINT16 OpenDDS::DCPS::EncapsulationHeader::options | ( | void | ) | const |
Definition at line 179 of file Serializer.inl.
References ACE_INLINE.
Referenced by OpenDDS::DCPS::operator<<(), and OpenDDS::DCPS::operator>>().
ACE_INLINE void OpenDDS::DCPS::EncapsulationHeader::options | ( | ACE_UINT16 | value | ) |
Definition at line 185 of file Serializer.inl.
References ACE_INLINE, and value.
|
static |
Definition at line 251 of file Serializer.cpp.
References ACE_ERROR, OpenDDS::DCPS::LogLevel::Error, ACE_Message_Block::length(), LM_ERROR, OpenDDS::DCPS::log_level, padding_marker_alignment, padding_marker_byte_index, and ACE_Message_Block::rd_ptr().
Referenced by OpenDDS::DCPS::DataWriterImpl::serialize_sample().
bool OpenDDS::DCPS::EncapsulationHeader::to_any_encoding | ( | Encoding & | encoding | ) |
Like to_encoding, but without an expected extensibility.
Definition at line 159 of file Serializer.cpp.
References to_encoding_i().
bool OpenDDS::DCPS::EncapsulationHeader::to_encoding | ( | Encoding & | encoding, |
Extensibility | expected_extensibility | ||
) |
Translate to an encoding, returns false if it failed.
Definition at line 153 of file Serializer.cpp.
References to_encoding_i().
Referenced by OpenDDS::DCPS::DataReaderImpl_T< DynamicSample >::dds_demarshal(), OpenDDS::RTPS::Spdp::SpdpTransport::handle_input(), OpenDDS::DCPS::FilterEvaluator::SerializedForEval::lookup(), and OpenDDS::DCPS::DataReaderImpl_T< DynamicSample >::lookup_instance().
|
private |
Definition at line 164 of file Serializer.cpp.
References ACE_ERROR, OpenDDS::DCPS::APPENDABLE, OpenDDS::DCPS::ENDIAN_BIG, OpenDDS::DCPS::ENDIAN_LITTLE, OpenDDS::DCPS::Encoding::endianness(), OpenDDS::DCPS::LogLevel::Error, OpenDDS::DCPS::ext_to_string(), OpenDDS::DCPS::FINAL, OpenDDS::DCPS::Encoding::kind(), kind_, KIND_CDR2_BE, KIND_CDR2_LE, KIND_CDR_BE, KIND_CDR_LE, KIND_D_CDR2_BE, KIND_D_CDR2_LE, KIND_PL_CDR2_BE, KIND_PL_CDR2_LE, KIND_PL_CDR_BE, KIND_PL_CDR_LE, OpenDDS::DCPS::Encoding::KIND_XCDR1, OpenDDS::DCPS::Encoding::KIND_XCDR2, LM_ERROR, OpenDDS::DCPS::log_level, OpenDDS::DCPS::MUTABLE, and to_string().
Referenced by to_any_encoding(), and to_encoding().
String OpenDDS::DCPS::EncapsulationHeader::to_string | ( | void | ) | const |
Definition at line 265 of file Serializer.cpp.
References kind_, KIND_CDR2_BE, KIND_CDR2_LE, KIND_CDR_BE, KIND_CDR_LE, KIND_D_CDR2_BE, KIND_D_CDR2_LE, KIND_INVALID, KIND_PL_CDR2_BE, KIND_PL_CDR2_LE, KIND_PL_CDR_BE, KIND_PL_CDR_LE, KIND_XML, and OpenDDS::DCPS::to_dds_string().
Referenced by to_encoding_i().
|
private |
The first two bytes as a big endian integer.
Definition at line 295 of file Serializer.h.
Referenced by EncapsulationHeader(), from_encoding(), to_encoding_i(), OpenDDS::DCPS::Encoding::to_string(), and to_string().
|
private |
The last two bytes as a big endian integer.
Definition at line 297 of file Serializer.h.
|
static |
Definition at line 253 of file Serializer.h.
Referenced by set_encapsulation_options().
|
static |
Definition at line 252 of file Serializer.h.
Referenced by set_encapsulation_options().
|
static |