OpenDDS  Snapshot(2023/04/07-19:43)
Public Member Functions | Private Member Functions | Private Attributes | List of all members
OpenDDS::DCPS::PrinterValueWriter Class Reference

Convert values to a readable format. More...

#include <PrinterValueWriter.h>

Inheritance diagram for OpenDDS::DCPS::PrinterValueWriter:
Inheritance graph
[legend]
Collaboration diagram for OpenDDS::DCPS::PrinterValueWriter:
Collaboration graph
[legend]

Public Member Functions

 PrinterValueWriter (unsigned int a_indent=TheServiceParticipant->printer_value_writer_indent())
 
void begin_struct ()
 
void end_struct ()
 
void begin_struct_member (const DDS::MemberDescriptor &)
 
void end_struct_member ()
 
void begin_union ()
 
void end_union ()
 
void begin_discriminator ()
 
void end_discriminator ()
 
void begin_union_member (const char *name)
 
void end_union_member ()
 
void begin_array ()
 
void end_array ()
 
void begin_sequence ()
 
void end_sequence ()
 
void begin_element (size_t idx)
 
void end_element ()
 
void write_boolean (ACE_CDR::Boolean value)
 
void write_byte (ACE_CDR::Octet value)
 
void write_int16 (ACE_CDR::Short value)
 
void write_uint16 (ACE_CDR::UShort value)
 
void write_int32 (ACE_CDR::Long value)
 
void write_uint32 (ACE_CDR::ULong value)
 
void write_int64 (ACE_CDR::LongLong value)
 
void write_uint64 (ACE_CDR::ULongLong value)
 
void write_float32 (ACE_CDR::Float value)
 
void write_float64 (ACE_CDR::Double value)
 
void write_float128 (ACE_CDR::LongDouble value)
 
void write_fixed (const OpenDDS::FaceTypes::Fixed &value)
 
void write_char8 (ACE_CDR::Char value)
 
void write_char16 (ACE_CDR::WChar value)
 
void write_string (const ACE_CDR::Char *value, size_t length)
 
void write_wstring (const ACE_CDR::WChar *value, size_t length)
 
void write_enum (const char *, ACE_CDR::Long value)
 
std::string str () const
 
- Public Member Functions inherited from OpenDDS::DCPS::ValueWriter
 ValueWriter ()
 
virtual ~ValueWriter ()
 
void write_string (const ACE_CDR::Char *value)
 
void write_string (const std::string &value)
 
void write_wstring (const ACE_CDR::WChar *value)
 
void write_wstring (const std::wstring &value)
 
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)
 

Private Member Functions

std::string newline ()
 

Private Attributes

const unsigned int indent_
 
std::stringstream stream_
 
unsigned int current_indent_
 
bool at_newline_
 

Detailed Description

Convert values to a readable format.

Definition at line 31 of file PrinterValueWriter.h.

Constructor & Destructor Documentation

◆ PrinterValueWriter()

OpenDDS::DCPS::PrinterValueWriter::PrinterValueWriter ( unsigned int  a_indent = TheServiceParticipant->printer_value_writer_indent())
inlineexplicit

Member Function Documentation

◆ begin_array()

void OpenDDS::DCPS::PrinterValueWriter::begin_array ( )
virtual

Reimplemented from OpenDDS::DCPS::ValueWriter.

Definition at line 149 of file PrinterValueWriter.h.

References current_indent_, and indent_.

Referenced by PrinterValueWriter().

◆ begin_discriminator()

void OpenDDS::DCPS::PrinterValueWriter::begin_discriminator ( )
virtual

Reimplemented from OpenDDS::DCPS::ValueWriter.

Definition at line 131 of file PrinterValueWriter.h.

References at_newline_, current_indent_, newline(), and stream_.

Referenced by PrinterValueWriter().

132 {
133  stream_ << newline() << std::string(current_indent_, ' ') << "$discriminator: ";
134  at_newline_ = false;
135 }

◆ begin_element()

void OpenDDS::DCPS::PrinterValueWriter::begin_element ( size_t  idx)
virtual

Reimplemented from OpenDDS::DCPS::ValueWriter.

Definition at line 169 of file PrinterValueWriter.h.

References at_newline_, current_indent_, newline(), and stream_.

Referenced by PrinterValueWriter().

170 {
171  stream_ << newline() << std::string(current_indent_, ' ') << '[' << idx << "]: ";
172  at_newline_ = false;
173 }

◆ begin_sequence()

void OpenDDS::DCPS::PrinterValueWriter::begin_sequence ( )
virtual

Reimplemented from OpenDDS::DCPS::ValueWriter.

Definition at line 159 of file PrinterValueWriter.h.

References current_indent_, and indent_.

Referenced by PrinterValueWriter().

◆ begin_struct()

void OpenDDS::DCPS::PrinterValueWriter::begin_struct ( )
virtual

Reimplemented from OpenDDS::DCPS::ValueWriter.

Definition at line 102 of file PrinterValueWriter.h.

References current_indent_, and indent_.

Referenced by PrinterValueWriter().

◆ begin_struct_member()

void OpenDDS::DCPS::PrinterValueWriter::begin_struct_member ( const DDS::MemberDescriptor descriptor)
virtual

Reimplemented from OpenDDS::DCPS::ValueWriter.

Definition at line 112 of file PrinterValueWriter.h.

References at_newline_, current_indent_, DDS::MemberDescriptor::name, newline(), and stream_.

Referenced by PrinterValueWriter().

113 {
114  stream_ << newline() << std::string(current_indent_, ' ') << descriptor.name() << ": ";
115  at_newline_ = false;
116 }
public ObjectName name

◆ begin_union()

void OpenDDS::DCPS::PrinterValueWriter::begin_union ( )
virtual

Reimplemented from OpenDDS::DCPS::ValueWriter.

Definition at line 121 of file PrinterValueWriter.h.

References current_indent_, and indent_.

Referenced by PrinterValueWriter().

◆ begin_union_member()

void OpenDDS::DCPS::PrinterValueWriter::begin_union_member ( const char *  name)
virtual

Reimplemented from OpenDDS::DCPS::ValueWriter.

Definition at line 140 of file PrinterValueWriter.h.

References at_newline_, current_indent_, newline(), and stream_.

Referenced by PrinterValueWriter().

141 {
142  stream_ << newline() << std::string(current_indent_, ' ') << name << ": ";
143  at_newline_ = false;
144 }
const char *const name
Definition: debug.cpp:60

◆ end_array()

void OpenDDS::DCPS::PrinterValueWriter::end_array ( )
virtual

Reimplemented from OpenDDS::DCPS::ValueWriter.

Definition at line 154 of file PrinterValueWriter.h.

References current_indent_, and indent_.

Referenced by PrinterValueWriter().

◆ end_discriminator()

void OpenDDS::DCPS::PrinterValueWriter::end_discriminator ( )
virtual

Reimplemented from OpenDDS::DCPS::ValueWriter.

Definition at line 137 of file PrinterValueWriter.h.

Referenced by PrinterValueWriter().

138 {}

◆ end_element()

void OpenDDS::DCPS::PrinterValueWriter::end_element ( )
virtual

Reimplemented from OpenDDS::DCPS::ValueWriter.

Definition at line 175 of file PrinterValueWriter.h.

Referenced by PrinterValueWriter().

176 {}

◆ end_sequence()

void OpenDDS::DCPS::PrinterValueWriter::end_sequence ( )
virtual

Reimplemented from OpenDDS::DCPS::ValueWriter.

Definition at line 164 of file PrinterValueWriter.h.

References current_indent_, and indent_.

Referenced by PrinterValueWriter().

◆ end_struct()

void OpenDDS::DCPS::PrinterValueWriter::end_struct ( )
virtual

Reimplemented from OpenDDS::DCPS::ValueWriter.

Definition at line 107 of file PrinterValueWriter.h.

References current_indent_, and indent_.

Referenced by PrinterValueWriter().

◆ end_struct_member()

void OpenDDS::DCPS::PrinterValueWriter::end_struct_member ( )
virtual

Reimplemented from OpenDDS::DCPS::ValueWriter.

Definition at line 118 of file PrinterValueWriter.h.

Referenced by PrinterValueWriter().

119 {}

◆ end_union()

void OpenDDS::DCPS::PrinterValueWriter::end_union ( )
virtual

Reimplemented from OpenDDS::DCPS::ValueWriter.

Definition at line 126 of file PrinterValueWriter.h.

References current_indent_, and indent_.

Referenced by PrinterValueWriter().

◆ end_union_member()

void OpenDDS::DCPS::PrinterValueWriter::end_union_member ( )
virtual

Reimplemented from OpenDDS::DCPS::ValueWriter.

Definition at line 146 of file PrinterValueWriter.h.

Referenced by PrinterValueWriter().

147 {}

◆ newline()

std::string OpenDDS::DCPS::PrinterValueWriter::newline ( )
inlineprivate

Definition at line 86 of file PrinterValueWriter.h.

References at_newline_.

Referenced by begin_discriminator(), begin_element(), begin_struct_member(), and begin_union_member().

87  {
88  if (at_newline_) {
89  return "";
90  } else {
91  at_newline_ = false;
92  return "\n";
93  }
94  }

◆ str()

std::string OpenDDS::DCPS::PrinterValueWriter::str ( ) const
inline

Definition at line 80 of file PrinterValueWriter.h.

References stream_.

81  {
82  return stream_.str();
83  }

◆ write_boolean()

void OpenDDS::DCPS::PrinterValueWriter::write_boolean ( ACE_CDR::Boolean  value)
virtual

Implements OpenDDS::DCPS::ValueWriter.

Definition at line 178 of file PrinterValueWriter.h.

References stream_.

Referenced by PrinterValueWriter().

179 {
180  stream_ << (value ? "true" : "false");
181 }
const LogLevel::Value value
Definition: debug.cpp:61

◆ write_byte()

void OpenDDS::DCPS::PrinterValueWriter::write_byte ( ACE_CDR::Octet  value)
virtual

Implements OpenDDS::DCPS::ValueWriter.

Definition at line 183 of file PrinterValueWriter.h.

References stream_, and value.

Referenced by PrinterValueWriter().

184 {
185  stream_ << std::hex << "0x" << static_cast<unsigned int>(value) << std::dec;
186 }
const LogLevel::Value value
Definition: debug.cpp:61

◆ write_char16()

void OpenDDS::DCPS::PrinterValueWriter::write_char16 ( ACE_CDR::WChar  value)
virtual

Implements OpenDDS::DCPS::ValueWriter.

Definition at line 257 of file PrinterValueWriter.h.

References OpenDDS::DCPS::char_helper(), and stream_.

Referenced by PrinterValueWriter().

258 {
260 }
const LogLevel::Value value
Definition: debug.cpp:61
std::ostream & char_helper(std::ostream &o, CharType value)
Definition: ValueHelper.h:77

◆ write_char8()

void OpenDDS::DCPS::PrinterValueWriter::write_char8 ( ACE_CDR::Char  value)
virtual

Implements OpenDDS::DCPS::ValueWriter.

Definition at line 252 of file PrinterValueWriter.h.

References OpenDDS::DCPS::char_helper(), and stream_.

Referenced by PrinterValueWriter().

253 {
255 }
const LogLevel::Value value
Definition: debug.cpp:61
std::ostream & char_helper(std::ostream &o, CharType value)
Definition: ValueHelper.h:77

◆ write_enum()

void OpenDDS::DCPS::PrinterValueWriter::write_enum ( const char *  name,
ACE_CDR::Long  value 
)
virtual

Implements OpenDDS::DCPS::ValueWriter.

Definition at line 272 of file PrinterValueWriter.h.

References OPENDDS_END_VERSIONED_NAMESPACE_DECL, and stream_.

Referenced by PrinterValueWriter().

274 {
275  stream_ << name << " (" << value << ")";
276 }
const LogLevel::Value value
Definition: debug.cpp:61
const char *const name
Definition: debug.cpp:60

◆ write_fixed()

void OpenDDS::DCPS::PrinterValueWriter::write_fixed ( const OpenDDS::FaceTypes::Fixed &  value)
virtual

Implements OpenDDS::DCPS::ValueWriter.

Definition at line 246 of file PrinterValueWriter.h.

References stream_.

Referenced by PrinterValueWriter().

247 {
248  // FUTURE
249  stream_ << "fixed";
250 }

◆ write_float128()

void OpenDDS::DCPS::PrinterValueWriter::write_float128 ( ACE_CDR::LongDouble  value)
virtual

Implements OpenDDS::DCPS::ValueWriter.

Definition at line 241 of file PrinterValueWriter.h.

References stream_, and value.

Referenced by PrinterValueWriter().

242 {
243  stream_ << value;
244 }
const LogLevel::Value value
Definition: debug.cpp:61

◆ write_float32()

void OpenDDS::DCPS::PrinterValueWriter::write_float32 ( ACE_CDR::Float  value)
virtual

Implements OpenDDS::DCPS::ValueWriter.

Definition at line 231 of file PrinterValueWriter.h.

References stream_, and value.

Referenced by PrinterValueWriter().

232 {
233  stream_ << value;
234 }
const LogLevel::Value value
Definition: debug.cpp:61

◆ write_float64()

void OpenDDS::DCPS::PrinterValueWriter::write_float64 ( ACE_CDR::Double  value)
virtual

Implements OpenDDS::DCPS::ValueWriter.

Definition at line 236 of file PrinterValueWriter.h.

References stream_, and value.

Referenced by PrinterValueWriter().

237 {
238  stream_ << value;
239 }
const LogLevel::Value value
Definition: debug.cpp:61

◆ write_int16()

void OpenDDS::DCPS::PrinterValueWriter::write_int16 ( ACE_CDR::Short  value)
virtual

Implements OpenDDS::DCPS::ValueWriter.

Definition at line 201 of file PrinterValueWriter.h.

References stream_, and value.

Referenced by PrinterValueWriter().

202 {
203  stream_ << value;
204 }
const LogLevel::Value value
Definition: debug.cpp:61

◆ write_int32()

void OpenDDS::DCPS::PrinterValueWriter::write_int32 ( ACE_CDR::Long  value)
virtual

Implements OpenDDS::DCPS::ValueWriter.

Definition at line 211 of file PrinterValueWriter.h.

References stream_, and value.

Referenced by PrinterValueWriter().

212 {
213  stream_ << value;
214 }
const LogLevel::Value value
Definition: debug.cpp:61

◆ write_int64()

void OpenDDS::DCPS::PrinterValueWriter::write_int64 ( ACE_CDR::LongLong  value)
virtual

Implements OpenDDS::DCPS::ValueWriter.

Definition at line 221 of file PrinterValueWriter.h.

References stream_, and value.

Referenced by PrinterValueWriter().

222 {
223  stream_ << value;
224 }
const LogLevel::Value value
Definition: debug.cpp:61

◆ write_string()

void OpenDDS::DCPS::PrinterValueWriter::write_string ( const ACE_CDR::Char value,
size_t  length 
)
virtual

Implements OpenDDS::DCPS::ValueWriter.

Definition at line 262 of file PrinterValueWriter.h.

References stream_, and OpenDDS::DCPS::string_helper().

Referenced by PrinterValueWriter().

263 {
264  string_helper(stream_, value, length);
265 }
const LogLevel::Value value
Definition: debug.cpp:61
std::ostream & string_helper(std::ostream &o, const CharType *value)
Definition: ValueHelper.h:108

◆ write_uint16()

void OpenDDS::DCPS::PrinterValueWriter::write_uint16 ( ACE_CDR::UShort  value)
virtual

Implements OpenDDS::DCPS::ValueWriter.

Definition at line 206 of file PrinterValueWriter.h.

References stream_, and value.

Referenced by PrinterValueWriter().

207 {
208  stream_ << value;
209 }
const LogLevel::Value value
Definition: debug.cpp:61

◆ write_uint32()

void OpenDDS::DCPS::PrinterValueWriter::write_uint32 ( ACE_CDR::ULong  value)
virtual

Implements OpenDDS::DCPS::ValueWriter.

Definition at line 216 of file PrinterValueWriter.h.

References stream_, and value.

Referenced by PrinterValueWriter().

217 {
218  stream_ << value;
219 }
const LogLevel::Value value
Definition: debug.cpp:61

◆ write_uint64()

void OpenDDS::DCPS::PrinterValueWriter::write_uint64 ( ACE_CDR::ULongLong  value)
virtual

Implements OpenDDS::DCPS::ValueWriter.

Definition at line 226 of file PrinterValueWriter.h.

References stream_, and value.

Referenced by PrinterValueWriter().

227 {
228  stream_ << value;
229 }
const LogLevel::Value value
Definition: debug.cpp:61

◆ write_wstring()

void OpenDDS::DCPS::PrinterValueWriter::write_wstring ( const ACE_CDR::WChar value,
size_t  length 
)
virtual

Implements OpenDDS::DCPS::ValueWriter.

Definition at line 267 of file PrinterValueWriter.h.

References stream_, and OpenDDS::DCPS::string_helper().

Referenced by PrinterValueWriter().

268 {
269  string_helper(stream_, value, length);
270 }
const LogLevel::Value value
Definition: debug.cpp:61
std::ostream & string_helper(std::ostream &o, const CharType *value)
Definition: ValueHelper.h:108

Member Data Documentation

◆ at_newline_

bool OpenDDS::DCPS::PrinterValueWriter::at_newline_
private

◆ current_indent_

unsigned int OpenDDS::DCPS::PrinterValueWriter::current_indent_
private

◆ indent_

const unsigned int OpenDDS::DCPS::PrinterValueWriter::indent_
private

◆ stream_

std::stringstream OpenDDS::DCPS::PrinterValueWriter::stream_
private

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