OpenDDS  Snapshot(2023/04/28-20:55)
Classes | Namespaces | Enumerations | Functions | Variables
Serializer.h File Reference
#include <ace/config-macros.h>
#include "Definitions.h"
#include "PoolAllocator.h"
#include "Message_Block_Ptr.h"
#include "dcps_export.h"
#include <ace/CDR_Base.h>
#include <ace/CDR_Stream.h>
#include <limits>
#include <string>
Include dependency graph for Serializer.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  OpenDDS::DCPS::Encoding
 
class  OpenDDS::DCPS::EncapsulationHeader
 
class  OpenDDS::DCPS::MessageBlockHelper< T >
 
class  OpenDDS::DCPS::Serializer
 Class to serialize and deserialize data for DDS. More...
 
struct  OpenDDS::DCPS::Serializer::FromBoundedString< CharT >
 
struct  OpenDDS::DCPS::Serializer::ToBoundedString< CharT >
 
struct  OpenDDS::DCPS::Serializer::ScopedAlignmentContext
 
struct  OpenDDS::DCPS::Serializer::RdState
 
struct  OpenDDS::DCPS::KeyOnly< Type >
 
struct  OpenDDS::DCPS::NestedKeyOnly< Type >
 
struct  OpenDDS::DCPS::IDL::DistinctType< T, typename >
 

Namespaces

 OpenDDS
 The Internal API and Implementation of OpenDDS.
 
 OpenDDS::DCPS
 
 OpenDDS::DCPS::IDL
 

Enumerations

enum  OpenDDS::DCPS::Endianness { OpenDDS::DCPS::ENDIAN_BIG = 0, OpenDDS::DCPS::ENDIAN_LITTLE = 1, OpenDDS::DCPS::ENDIAN_NATIVE = ENDIAN_BIG, OpenDDS::DCPS::ENDIAN_NONNATIVE = ENDIAN_LITTLE }
 
enum  OpenDDS::DCPS::Extensibility { OpenDDS::DCPS::FINAL, OpenDDS::DCPS::APPENDABLE, OpenDDS::DCPS::MUTABLE }
 

Functions

String OpenDDS::DCPS::endianness_to_string (Endianness endianness)
 
const char * OpenDDS::DCPS::ext_to_string (Extensibility ext)
 
OpenDDS_Dcps_Export void OpenDDS::DCPS::align (size_t &value, size_t by)
 Align "value" by "by" if it's not already. More...
 
bool OpenDDS::DCPS::operator>> (Serializer &s, EncapsulationHeader &value)
 
bool OpenDDS::DCPS::operator<< (Serializer &s, const EncapsulationHeader &value)
 
template<typename T >
size_t OpenDDS::DCPS::serialized_size (const Encoding &encoding, const T &value)
 
template<typename Type >
void OpenDDS::DCPS::set_default (Type &)
 
template<typename Type , typename Tag >
void OpenDDS::DCPS::set_default (IDL::DistinctType< Type, Tag >)
 
OpenDDS_Dcps_Export bool OpenDDS::DCPS::primitive_serialized_size (const Encoding &encoding, size_t &size, const ACE_CDR::Short &value, size_t count=1)
 
OpenDDS_Dcps_Export bool OpenDDS::DCPS::primitive_serialized_size (const Encoding &encoding, size_t &size, const ACE_CDR::UShort &value, size_t count=1)
 
OpenDDS_Dcps_Export bool OpenDDS::DCPS::primitive_serialized_size (const Encoding &encoding, size_t &size, const ACE_CDR::Long &value, size_t count=1)
 
OpenDDS_Dcps_Export bool OpenDDS::DCPS::primitive_serialized_size (const Encoding &encoding, size_t &size, const ACE_CDR::ULong &value, size_t count=1)
 
OpenDDS_Dcps_Export bool OpenDDS::DCPS::primitive_serialized_size (const Encoding &encoding, size_t &size, const ACE_CDR::LongLong &value, size_t count=1)
 
OpenDDS_Dcps_Export bool OpenDDS::DCPS::primitive_serialized_size (const Encoding &encoding, size_t &size, const ACE_CDR::ULongLong &value, size_t count=1)
 
OpenDDS_Dcps_Export bool OpenDDS::DCPS::primitive_serialized_size (const Encoding &encoding, size_t &size, const ACE_CDR::Float &value, size_t count=1)
 
OpenDDS_Dcps_Export bool OpenDDS::DCPS::primitive_serialized_size (const Encoding &encoding, size_t &size, const ACE_CDR::Double &value, size_t count=1)
 
OpenDDS_Dcps_Export bool OpenDDS::DCPS::primitive_serialized_size (const Encoding &encoding, size_t &size, const ACE_CDR::LongDouble &value, size_t count=1)
 
OpenDDS_Dcps_Export bool OpenDDS::DCPS::primitive_serialized_size (const Encoding &encoding, size_t &size, const ACE_OutputCDR::from_boolean value, size_t count=1)
 
OpenDDS_Dcps_Export bool OpenDDS::DCPS::primitive_serialized_size (const Encoding &encoding, size_t &size, const ACE_OutputCDR::from_char value, size_t count=1)
 
OpenDDS_Dcps_Export bool OpenDDS::DCPS::primitive_serialized_size (const Encoding &encoding, size_t &size, const ACE_OutputCDR::from_wchar value, size_t count=1)
 
OpenDDS_Dcps_Export bool OpenDDS::DCPS::primitive_serialized_size (const Encoding &encoding, size_t &size, const ACE_OutputCDR::from_octet value, size_t count=1)
 
OpenDDS_Dcps_Export void OpenDDS::DCPS::primitive_serialized_size_boolean (const Encoding &encoding, size_t &size, size_t count=1)
 
OpenDDS_Dcps_Export void OpenDDS::DCPS::primitive_serialized_size_char (const Encoding &encoding, size_t &size, size_t count=1)
 
OpenDDS_Dcps_Export void OpenDDS::DCPS::primitive_serialized_size_wchar (const Encoding &encoding, size_t &size, size_t count=1)
 
OpenDDS_Dcps_Export void OpenDDS::DCPS::primitive_serialized_size_octet (const Encoding &encoding, size_t &size, size_t count=1)
 
OpenDDS_Dcps_Export void OpenDDS::DCPS::primitive_serialized_size_ulong (const Encoding &encoding, size_t &size, size_t count=1)
 
OpenDDS_Dcps_Export void OpenDDS::DCPS::serialized_size_delimiter (const Encoding &encoding, size_t &size)
 Add delimiter to the size of a serialized size if the encoding has them. More...
 
OpenDDS_Dcps_Export void OpenDDS::DCPS::serialized_size_parameter_id (const Encoding &encoding, size_t &size, size_t &running_size)
 
OpenDDS_Dcps_Export void OpenDDS::DCPS::serialized_size_list_end_parameter_id (const Encoding &encoding, size_t &size, size_t &running_size)
 

Variables

const size_t OpenDDS::DCPS::boolean_cdr_size = 1
 
const size_t OpenDDS::DCPS::byte_cdr_size = 1
 
const size_t OpenDDS::DCPS::int8_cdr_size = 1
 
const size_t OpenDDS::DCPS::uint8_cdr_size = 1
 
const size_t OpenDDS::DCPS::int16_cdr_size = 2
 
const size_t OpenDDS::DCPS::uint16_cdr_size = 2
 
const size_t OpenDDS::DCPS::int32_cdr_size = 4
 
const size_t OpenDDS::DCPS::uint32_cdr_size = 4
 
const size_t OpenDDS::DCPS::int64_cdr_size = 8
 
const size_t OpenDDS::DCPS::uint64_cdr_size = 8
 
const size_t OpenDDS::DCPS::float32_cdr_size = 4
 
const size_t OpenDDS::DCPS::float64_cdr_size = 8
 
const size_t OpenDDS::DCPS::float128_cdr_size = 16
 
const size_t OpenDDS::DCPS::char8_cdr_size = 1
 
const size_t OpenDDS::DCPS::char16_cdr_size = 2
 
const size_t OpenDDS::DCPS::xcdr1_pid_alignment = 4
 

Detailed Description

The serialization interface for a C++ type called Type consists of the following overloads:

void serialized_size( const Encoding& encoding, size_t& size, const Type& value); Get the size (in bytes) of the encoded representation of value.

bool operator<<(Serializer& serializer, const Type& value); Tries to encode value into the stream of the serializer. Returns true if successful, else false.

bool operator>>(Serializer& serializer, Type& value); Tries to decode a representation of Type located at the current position of the stream and use that to set value. Returns true if successful, else false.

Definition in file Serializer.h.