OpenDDS  Snapshot(2023/04/28-20:55)
Public Member Functions | List of all members
OpenDDS::DCPS::ValueWriter Class Referenceabstract

#include <ValueWriter.h>

Inheritance diagram for OpenDDS::DCPS::ValueWriter:
Inheritance graph
[legend]

Public Member Functions

 ValueWriter ()
 
virtual ~ValueWriter ()
 
virtual void begin_struct ()
 
virtual void end_struct ()
 
virtual void begin_struct_member (const DDS::MemberDescriptor &)
 
virtual void end_struct_member ()
 
virtual void begin_union ()
 
virtual void end_union ()
 
virtual void begin_discriminator ()
 
virtual void end_discriminator ()
 
virtual void begin_union_member (const char *)
 
virtual void end_union_member ()
 
virtual void begin_array ()
 
virtual void end_array ()
 
virtual void begin_sequence ()
 
virtual void end_sequence ()
 
virtual void begin_element (size_t)
 
virtual void end_element ()
 
virtual void write_boolean (ACE_CDR::Boolean)=0
 
virtual void write_byte (ACE_CDR::Octet)=0
 
virtual void write_int16 (ACE_CDR::Short)=0
 
virtual void write_uint16 (ACE_CDR::UShort)=0
 
virtual void write_int32 (ACE_CDR::Long)=0
 
virtual void write_uint32 (ACE_CDR::ULong)=0
 
virtual void write_int64 (ACE_CDR::LongLong)=0
 
virtual void write_uint64 (ACE_CDR::ULongLong)=0
 
virtual void write_float32 (ACE_CDR::Float)=0
 
virtual void write_float64 (ACE_CDR::Double)=0
 
virtual void write_float128 (ACE_CDR::LongDouble)=0
 
virtual void write_fixed (const OpenDDS::FaceTypes::Fixed &)=0
 
virtual void write_char8 (ACE_CDR::Char)=0
 
virtual void write_char16 (ACE_CDR::WChar)=0
 
virtual void write_string (const ACE_CDR::Char *, size_t)=0
 
void write_string (const ACE_CDR::Char *value)
 
void write_string (const std::string &value)
 
virtual void write_wstring (const ACE_CDR::WChar *, size_t)=0
 
void write_wstring (const ACE_CDR::WChar *value)
 
void write_wstring (const std::wstring &value)
 
virtual void write_enum (const char *, ACE_CDR::Long)=0
 
template<typename T >
void write_enum (const char *name, const T &value)
 
virtual void write_boolean_array (const ACE_CDR::Boolean *x, size_t length)
 
virtual void write_byte_array (const ACE_CDR::Octet *x, size_t length)
 
virtual void write_int16_array (const ACE_CDR::Short *x, size_t length)
 
virtual void write_uint16_array (const ACE_CDR::UShort *x, size_t length)
 
virtual void write_int32_array (const ACE_CDR::Long *x, size_t length)
 
virtual void write_uint32_array (const ACE_CDR::ULong *x, size_t length)
 
virtual void write_int64_array (const ACE_CDR::LongLong *x, size_t length)
 
virtual void write_uint64_array (const ACE_CDR::ULongLong *x, size_t length)
 
virtual void write_float32_array (const ACE_CDR::Float *x, size_t length)
 
virtual void write_float64_array (const ACE_CDR::Double *x, size_t length)
 
virtual void write_float128_array (const ACE_CDR::LongDouble *x, size_t length)
 
virtual void write_char8_array (const ACE_CDR::Char *x, size_t length)
 
virtual void write_char16_array (const ACE_CDR::WChar *x, size_t length)
 

Detailed Description

A ValueWriter receives events and values from the recitation of a value. Typical examples of value recitation are serializing an object for transmission, formatting an object for printing, or copying an object to another representation, e.g., C++ to v8. To use it, one manually or automatically, e.g., code generation in the IDL compiler, defines a vwrite function for a given type V.

void vwrite(ValueWriter& vw, const V& value)

The vwrite function should invoke the appropriate methods of the ValueWriter and dispatch for other vwrite functions.

Definition at line 38 of file ValueWriter.h.

Constructor & Destructor Documentation

◆ ValueWriter()

OpenDDS::DCPS::ValueWriter::ValueWriter ( )
inline

Definition at line 40 of file ValueWriter.h.

40 {}

◆ ~ValueWriter()

virtual OpenDDS::DCPS::ValueWriter::~ValueWriter ( )
inlinevirtual

Definition at line 41 of file ValueWriter.h.

41 {}

Member Function Documentation

◆ begin_array()

virtual void OpenDDS::DCPS::ValueWriter::begin_array ( )
inlinevirtual

Reimplemented in OpenDDS::DCPS::PrinterValueWriter.

Definition at line 55 of file ValueWriter.h.

55 {}

◆ begin_discriminator()

virtual void OpenDDS::DCPS::ValueWriter::begin_discriminator ( )
inlinevirtual

Reimplemented in OpenDDS::DCPS::PrinterValueWriter.

Definition at line 50 of file ValueWriter.h.

50 {}

◆ begin_element()

virtual void OpenDDS::DCPS::ValueWriter::begin_element ( size_t  )
inlinevirtual

◆ begin_sequence()

virtual void OpenDDS::DCPS::ValueWriter::begin_sequence ( )
inlinevirtual

Reimplemented in OpenDDS::DCPS::PrinterValueWriter.

Definition at line 57 of file ValueWriter.h.

57 {}

◆ begin_struct()

virtual void OpenDDS::DCPS::ValueWriter::begin_struct ( )
inlinevirtual

Reimplemented in OpenDDS::DCPS::PrinterValueWriter.

Definition at line 43 of file ValueWriter.h.

Referenced by OpenDDS::DCPS::vwrite().

43 {}

◆ begin_struct_member()

virtual void OpenDDS::DCPS::ValueWriter::begin_struct_member ( const DDS::MemberDescriptor )
inlinevirtual

Reimplemented in OpenDDS::DCPS::PrinterValueWriter.

Definition at line 45 of file ValueWriter.h.

Referenced by OpenDDS::DCPS::vwrite().

45 {}

◆ begin_union()

virtual void OpenDDS::DCPS::ValueWriter::begin_union ( )
inlinevirtual

Reimplemented in OpenDDS::DCPS::PrinterValueWriter.

Definition at line 48 of file ValueWriter.h.

48 {}

◆ begin_union_member()

virtual void OpenDDS::DCPS::ValueWriter::begin_union_member ( const char *  )
inlinevirtual

Reimplemented in OpenDDS::DCPS::PrinterValueWriter.

Definition at line 52 of file ValueWriter.h.

52 {}

◆ end_array()

virtual void OpenDDS::DCPS::ValueWriter::end_array ( )
inlinevirtual

Reimplemented in OpenDDS::DCPS::PrinterValueWriter.

Definition at line 56 of file ValueWriter.h.

56 {}

◆ end_discriminator()

virtual void OpenDDS::DCPS::ValueWriter::end_discriminator ( )
inlinevirtual

Reimplemented in OpenDDS::DCPS::PrinterValueWriter.

Definition at line 51 of file ValueWriter.h.

51 {}

◆ end_element()

virtual void OpenDDS::DCPS::ValueWriter::end_element ( )
inlinevirtual

◆ end_sequence()

virtual void OpenDDS::DCPS::ValueWriter::end_sequence ( )
inlinevirtual

Reimplemented in OpenDDS::DCPS::PrinterValueWriter.

Definition at line 58 of file ValueWriter.h.

58 {}

◆ end_struct()

virtual void OpenDDS::DCPS::ValueWriter::end_struct ( )
inlinevirtual

Reimplemented in OpenDDS::DCPS::PrinterValueWriter.

Definition at line 44 of file ValueWriter.h.

Referenced by OpenDDS::DCPS::vwrite().

44 {}

◆ end_struct_member()

virtual void OpenDDS::DCPS::ValueWriter::end_struct_member ( )
inlinevirtual

Reimplemented in OpenDDS::DCPS::PrinterValueWriter.

Definition at line 46 of file ValueWriter.h.

Referenced by OpenDDS::DCPS::vwrite().

46 {}

◆ end_union()

virtual void OpenDDS::DCPS::ValueWriter::end_union ( )
inlinevirtual

Reimplemented in OpenDDS::DCPS::PrinterValueWriter.

Definition at line 49 of file ValueWriter.h.

49 {}

◆ end_union_member()

virtual void OpenDDS::DCPS::ValueWriter::end_union_member ( )
inlinevirtual

Reimplemented in OpenDDS::DCPS::PrinterValueWriter.

Definition at line 53 of file ValueWriter.h.

53 {}

◆ write_boolean()

virtual void OpenDDS::DCPS::ValueWriter::write_boolean ( ACE_CDR::Boolean  )
pure virtual

◆ write_boolean_array()

void OpenDDS::DCPS::ValueWriter::write_boolean_array ( const ACE_CDR::Boolean x,
size_t  length 
)
virtual

Array write operations Note: the portion written starts at x and ends at x + length.

Definition at line 26 of file ValueWriter.cpp.

References begin_element(), end_element(), and write_boolean().

27 {
28  for (size_t i = 0; i != length; ++i) {
29  begin_element(i);
30  write_boolean(x[i]);
31  end_element();
32  }
33 }
virtual void write_boolean(ACE_CDR::Boolean)=0
virtual void end_element()
Definition: ValueWriter.h:60
virtual void begin_element(size_t)
Definition: ValueWriter.h:59

◆ write_byte()

virtual void OpenDDS::DCPS::ValueWriter::write_byte ( ACE_CDR::Octet  )
pure virtual

Implemented in OpenDDS::DCPS::PrinterValueWriter.

Referenced by write_byte_array().

◆ write_byte_array()

void OpenDDS::DCPS::ValueWriter::write_byte_array ( const ACE_CDR::Octet x,
size_t  length 
)
virtual

Array write operations Note: the portion written starts at x and ends at x + length.

Definition at line 36 of file ValueWriter.cpp.

References begin_element(), end_element(), and write_byte().

37 {
38  for (size_t i = 0; i != length; ++i) {
39  begin_element(i);
40  write_byte(x[i]);
41  end_element();
42  }
43 }
virtual void write_byte(ACE_CDR::Octet)=0
virtual void end_element()
Definition: ValueWriter.h:60
virtual void begin_element(size_t)
Definition: ValueWriter.h:59

◆ write_char16()

virtual void OpenDDS::DCPS::ValueWriter::write_char16 ( ACE_CDR::WChar  )
pure virtual

◆ write_char16_array()

void OpenDDS::DCPS::ValueWriter::write_char16_array ( const ACE_CDR::WChar x,
size_t  length 
)
virtual

Array write operations Note: the portion written starts at x and ends at x + length.

Definition at line 168 of file ValueWriter.cpp.

References begin_element(), end_element(), OPENDDS_END_VERSIONED_NAMESPACE_DECL, and write_char16().

169 {
170  for (size_t i = 0; i != length; ++i) {
171  begin_element(i);
172  write_char16(x[i]);
173  end_element();
174  }
175 }
virtual void write_char16(ACE_CDR::WChar)=0
virtual void end_element()
Definition: ValueWriter.h:60
virtual void begin_element(size_t)
Definition: ValueWriter.h:59

◆ write_char8()

virtual void OpenDDS::DCPS::ValueWriter::write_char8 ( ACE_CDR::Char  )
pure virtual

◆ write_char8_array()

void OpenDDS::DCPS::ValueWriter::write_char8_array ( const ACE_CDR::Char x,
size_t  length 
)
virtual

Array write operations Note: the portion written starts at x and ends at x + length.

Definition at line 158 of file ValueWriter.cpp.

References begin_element(), end_element(), and write_char8().

159 {
160  for (size_t i = 0; i != length; ++i) {
161  begin_element(i);
162  write_char8(x[i]);
163  end_element();
164  }
165 }
virtual void end_element()
Definition: ValueWriter.h:60
virtual void begin_element(size_t)
Definition: ValueWriter.h:59
virtual void write_char8(ACE_CDR::Char)=0

◆ write_enum() [1/2]

virtual void OpenDDS::DCPS::ValueWriter::write_enum ( const char *  ,
ACE_CDR::Long   
)
pure virtual

◆ write_enum() [2/2]

template<typename T >
void OpenDDS::DCPS::ValueWriter::write_enum ( const char *  name,
const T &  value 
)
inline

Definition at line 108 of file ValueWriter.h.

References OPENDDS_END_VERSIONED_NAMESPACE_DECL.

109  {
110  write_enum(name, static_cast<ACE_CDR::Long>(value));
111  }
const LogLevel::Value value
Definition: debug.cpp:61
const char *const name
Definition: debug.cpp:60
virtual void write_enum(const char *, ACE_CDR::Long)=0

◆ write_fixed()

virtual void OpenDDS::DCPS::ValueWriter::write_fixed ( const OpenDDS::FaceTypes::Fixed &  )
pure virtual

◆ write_float128()

virtual void OpenDDS::DCPS::ValueWriter::write_float128 ( ACE_CDR::LongDouble  )
pure virtual

◆ write_float128_array()

void OpenDDS::DCPS::ValueWriter::write_float128_array ( const ACE_CDR::LongDouble x,
size_t  length 
)
virtual

Array write operations Note: the portion written starts at x and ends at x + length.

Definition at line 148 of file ValueWriter.cpp.

References begin_element(), end_element(), and write_float128().

149 {
150  for (size_t i = 0; i != length; ++i) {
151  begin_element(i);
152  write_float128(x[i]);
153  end_element();
154  }
155 }
virtual void write_float128(ACE_CDR::LongDouble)=0
virtual void end_element()
Definition: ValueWriter.h:60
virtual void begin_element(size_t)
Definition: ValueWriter.h:59

◆ write_float32()

virtual void OpenDDS::DCPS::ValueWriter::write_float32 ( ACE_CDR::Float  )
pure virtual

◆ write_float32_array()

void OpenDDS::DCPS::ValueWriter::write_float32_array ( const ACE_CDR::Float x,
size_t  length 
)
virtual

Array write operations Note: the portion written starts at x and ends at x + length.

Definition at line 128 of file ValueWriter.cpp.

References begin_element(), end_element(), and write_float32().

129 {
130  for (size_t i = 0; i != length; ++i) {
131  begin_element(i);
132  write_float32(x[i]);
133  end_element();
134  }
135 }
virtual void end_element()
Definition: ValueWriter.h:60
virtual void write_float32(ACE_CDR::Float)=0
virtual void begin_element(size_t)
Definition: ValueWriter.h:59

◆ write_float64()

virtual void OpenDDS::DCPS::ValueWriter::write_float64 ( ACE_CDR::Double  )
pure virtual

◆ write_float64_array()

void OpenDDS::DCPS::ValueWriter::write_float64_array ( const ACE_CDR::Double x,
size_t  length 
)
virtual

Array write operations Note: the portion written starts at x and ends at x + length.

Definition at line 138 of file ValueWriter.cpp.

References begin_element(), end_element(), and write_float64().

139 {
140  for (size_t i = 0; i != length; ++i) {
141  begin_element(i);
142  write_float64(x[i]);
143  end_element();
144  }
145 }
virtual void write_float64(ACE_CDR::Double)=0
virtual void end_element()
Definition: ValueWriter.h:60
virtual void begin_element(size_t)
Definition: ValueWriter.h:59

◆ write_int16()

virtual void OpenDDS::DCPS::ValueWriter::write_int16 ( ACE_CDR::Short  )
pure virtual

◆ write_int16_array()

void OpenDDS::DCPS::ValueWriter::write_int16_array ( const ACE_CDR::Short x,
size_t  length 
)
virtual

Array write operations Note: the portion written starts at x and ends at x + length.

Definition at line 68 of file ValueWriter.cpp.

References begin_element(), end_element(), and write_int16().

69 {
70  for (size_t i = 0; i != length; ++i) {
71  begin_element(i);
72  write_int16(x[i]);
73  end_element();
74  }
75 }
virtual void write_int16(ACE_CDR::Short)=0
virtual void end_element()
Definition: ValueWriter.h:60
virtual void begin_element(size_t)
Definition: ValueWriter.h:59

◆ write_int32()

virtual void OpenDDS::DCPS::ValueWriter::write_int32 ( ACE_CDR::Long  )
pure virtual

◆ write_int32_array()

void OpenDDS::DCPS::ValueWriter::write_int32_array ( const ACE_CDR::Long x,
size_t  length 
)
virtual

Array write operations Note: the portion written starts at x and ends at x + length.

Definition at line 88 of file ValueWriter.cpp.

References begin_element(), end_element(), and write_int32().

89 {
90  for (size_t i = 0; i != length; ++i) {
91  begin_element(i);
92  write_int32(x[i]);
93  end_element();
94  }
95 }
virtual void end_element()
Definition: ValueWriter.h:60
virtual void write_int32(ACE_CDR::Long)=0
virtual void begin_element(size_t)
Definition: ValueWriter.h:59

◆ write_int64()

virtual void OpenDDS::DCPS::ValueWriter::write_int64 ( ACE_CDR::LongLong  )
pure virtual

◆ write_int64_array()

void OpenDDS::DCPS::ValueWriter::write_int64_array ( const ACE_CDR::LongLong x,
size_t  length 
)
virtual

Array write operations Note: the portion written starts at x and ends at x + length.

Definition at line 108 of file ValueWriter.cpp.

References begin_element(), end_element(), and write_int64().

109 {
110  for (size_t i = 0; i != length; ++i) {
111  begin_element(i);
112  write_int64(x[i]);
113  end_element();
114  }
115 }
virtual void end_element()
Definition: ValueWriter.h:60
virtual void write_int64(ACE_CDR::LongLong)=0
virtual void begin_element(size_t)
Definition: ValueWriter.h:59

◆ write_string() [1/3]

virtual void OpenDDS::DCPS::ValueWriter::write_string ( const ACE_CDR::Char ,
size_t   
)
pure virtual

◆ write_string() [2/3]

void OpenDDS::DCPS::ValueWriter::write_string ( const ACE_CDR::Char value)
inline

Definition at line 86 of file ValueWriter.h.

References write_string().

Referenced by write_string().

86 { write_string(value, std::strlen(value)); }
const LogLevel::Value value
Definition: debug.cpp:61
virtual void write_string(const ACE_CDR::Char *, size_t)=0

◆ write_string() [3/3]

void OpenDDS::DCPS::ValueWriter::write_string ( const std::string &  value)
inline

Definition at line 87 of file ValueWriter.h.

References write_string().

Referenced by write_string().

87 { write_string(value.c_str(), value.length()); }
const LogLevel::Value value
Definition: debug.cpp:61
virtual void write_string(const ACE_CDR::Char *, size_t)=0

◆ write_uint16()

virtual void OpenDDS::DCPS::ValueWriter::write_uint16 ( ACE_CDR::UShort  )
pure virtual

◆ write_uint16_array()

void OpenDDS::DCPS::ValueWriter::write_uint16_array ( const ACE_CDR::UShort x,
size_t  length 
)
virtual

Array write operations Note: the portion written starts at x and ends at x + length.

Definition at line 78 of file ValueWriter.cpp.

References begin_element(), end_element(), and write_uint16().

79 {
80  for (size_t i = 0; i != length; ++i) {
81  begin_element(i);
82  write_uint16(x[i]);
83  end_element();
84  }
85 }
virtual void end_element()
Definition: ValueWriter.h:60
virtual void write_uint16(ACE_CDR::UShort)=0
virtual void begin_element(size_t)
Definition: ValueWriter.h:59

◆ write_uint32()

virtual void OpenDDS::DCPS::ValueWriter::write_uint32 ( ACE_CDR::ULong  )
pure virtual

◆ write_uint32_array()

void OpenDDS::DCPS::ValueWriter::write_uint32_array ( const ACE_CDR::ULong x,
size_t  length 
)
virtual

Array write operations Note: the portion written starts at x and ends at x + length.

Definition at line 98 of file ValueWriter.cpp.

References begin_element(), end_element(), and write_uint32().

99 {
100  for (size_t i = 0; i != length; ++i) {
101  begin_element(i);
102  write_uint32(x[i]);
103  end_element();
104  }
105 }
virtual void end_element()
Definition: ValueWriter.h:60
virtual void begin_element(size_t)
Definition: ValueWriter.h:59
virtual void write_uint32(ACE_CDR::ULong)=0

◆ write_uint64()

virtual void OpenDDS::DCPS::ValueWriter::write_uint64 ( ACE_CDR::ULongLong  )
pure virtual

◆ write_uint64_array()

void OpenDDS::DCPS::ValueWriter::write_uint64_array ( const ACE_CDR::ULongLong x,
size_t  length 
)
virtual

Array write operations Note: the portion written starts at x and ends at x + length.

Definition at line 118 of file ValueWriter.cpp.

References begin_element(), end_element(), and write_uint64().

119 {
120  for (size_t i = 0; i != length; ++i) {
121  begin_element(i);
122  write_uint64(x[i]);
123  end_element();
124  }
125 }
virtual void end_element()
Definition: ValueWriter.h:60
virtual void begin_element(size_t)
Definition: ValueWriter.h:59
virtual void write_uint64(ACE_CDR::ULongLong)=0

◆ write_wstring() [1/3]

virtual void OpenDDS::DCPS::ValueWriter::write_wstring ( const ACE_CDR::WChar ,
size_t   
)
pure virtual

◆ write_wstring() [2/3]

void OpenDDS::DCPS::ValueWriter::write_wstring ( const ACE_CDR::WChar value)
inline

Definition at line 89 of file ValueWriter.h.

90  {
91 #ifdef DDS_HAS_WCHAR
92  write_wstring(value, std::wcslen(value));
93 #else
94  ACE_UNUSED_ARG(value);
95 #endif
96  }
const LogLevel::Value value
Definition: debug.cpp:61
virtual void write_wstring(const ACE_CDR::WChar *, size_t)=0

◆ write_wstring() [3/3]

void OpenDDS::DCPS::ValueWriter::write_wstring ( const std::wstring &  value)
inline

Definition at line 97 of file ValueWriter.h.

98  {
99 #ifdef DDS_HAS_WCHAR
100  write_wstring(value.c_str(), value.length());
101 #else
102  ACE_UNUSED_ARG(value);
103 #endif
104  }
const LogLevel::Value value
Definition: debug.cpp:61
virtual void write_wstring(const ACE_CDR::WChar *, size_t)=0

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