Loading...
Searching...
No Matches
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
SimpleSerializer Class Reference
Inheritance diagram for SimpleSerializer:
Inheritance graph
[legend]
Collaboration diagram for SimpleSerializer:
Collaboration graph
[legend]

Public Types

typedef std::map< objType, SimpleFormatterchar_map_t
 
- Public Types inherited from Serializer
typedef std::map< char, const char * > conv_map_t
 
typedef int objType
 

Public Member Functions

 SimpleSerializer (const char_map_t &chars)
 
virtual void writePrefix (std::ostream &ostr, objType type) const override
 
void writePrefix (std::ostream &ostr, const SimpleFormatter &fmt) const
 
virtual void writeSeparator (std::ostream &ostr, objType type) const override
 
void writeSeparator (std::ostream &ostr, const SimpleFormatter &fmt) const
 
virtual void writeSuffix (std::ostream &ostr, objType type) const override
 
void writeSuffix (std::ostream &ostr, const SimpleFormatter &fmt) const
 
virtual void stringToStream (std::ostream &ostr, const char *x) const override
 
virtual void charToStream (std::ostream &ostr, char c) const override
 
- Public Member Functions inherited from Serializer
template<class T >
void toStream (std::ostream &ostr, const T &x, objType hint=NONE) const
 Default handler.
 
template<class T >
void toStream (std::ostream &ostr, const std::list< T > &x) const
 
template<class T >
void toStream (std::ostream &ostr, const std::set< T > &x) const
 
template<class K , class V >
void toStream (std::ostream &ostr, const std::map< K, V > &x) const
 
template<class K , class V >
void toStream (std::ostream &ostr, const std::pair< K, V > &x) const
 
template<class K , class V >
void entryToStream (std::ostream &ostr, const std::pair< K, V > &x) const
 This is a map entry.
 
template<class T >
void entryToStream (std::ostream &ostr, const T &x) const
 
template<class T >
void iterableToStream (std::ostream &ostr, const T &x, objType iterableType=NONE) const
 
template<class K , class V >
void pairToStream (std::ostream &ostr, const std::pair< K, V > &x, objType containerType=NONE) const
 
void toStream (std::ostream &ostr, char c) const
 
void toStream (std::ostream &ostr, const char *x) const
 
void toStream (std::ostream &ostr, const std::string &x) const
 
void toStream (std::ostream &ostr, bool x) const
 
void toStream (std::ostream &ostr, const nullptr_t &t) const
 
template<class T >
void toStr (std::string &str, const T &x) const
 Default handler.
 
virtual void floatToStream (std::ostream &ostr, double x) const
 
virtual void intToStream (std::ostream &ostr, int x) const
 
virtual void boolToStream (std::ostream &ostr, bool x) const
 
virtual void nullToStream (std::ostream &ostr) const
 
virtual void stringToStream (std::ostream &ostr, const std::string &x) const final
 

Protected Member Functions

virtual const SimpleFormattergetFormatter (objType t) const
 
template<class S >
void charsToStream (std::ostream &ostr, const S &s) const
 
virtual void handleChars (std::ostream &ostr, char c) const
 
virtual void handleChars (std::ostream &ostr, const char *c) const
 

Protected Attributes

char_map_t fmtChars
 

Additional Inherited Members

- Static Public Attributes inherited from Serializer
static const char SINGLE_QUOTE = '\''
 
static const char DOUBLE_QUOTE = '"'
 
static const conv_map_t conversion
 
static const objType NONE =0
 
static const objType KEY =1
 
static const objType VALUE =2
 
static const objType PAIR =KEY|VALUE
 
static const objType LIST =4
 
static const objType SET =8
 
static const objType MAP =16
 
static const objType MAP_KEY =MAP|KEY
 
static const objType MAP_VALUE =MAP|VALUE
 
static const objType MAP_PAIR =MAP|PAIR
 
static const objType TUPLE =64
 
static const objType STRING =128
 

Member Function Documentation

◆ charToStream()

virtual void charToStream ( std::ostream &  ostr,
char  c 
) const
inlineoverridevirtual

Default implementation works like with std:string

Derived classes:

  • C/Cpp Serializer: single hyphens for char='c', doubles for string="str".
  • Python Serializer: supports toggling single and double

Reimplemented from Serializer.

◆ stringToStream()

virtual void stringToStream ( std::ostream &  ostr,
const char *  x 
) const
inlineoverridevirtual

Reimplemented from Serializer.

◆ writePrefix()

virtual void writePrefix ( std::ostream &  ostr,
objType  type 
) const
inlineoverridevirtual

Reimplemented from Serializer.

◆ writeSeparator()

virtual void writeSeparator ( std::ostream &  ostr,
objType  type 
) const
inlineoverridevirtual

Reimplemented from Serializer.

◆ writeSuffix()

virtual void writeSuffix ( std::ostream &  ostr,
objType  type 
) const
inlineoverridevirtual

Reimplemented from Serializer.

Member Data Documentation

◆ fmtChars

char_map_t fmtChars
protected
Initial value:
= {
{LIST, "[,]"},
{PAIR, "<,>"},
{SET, "{,}"},
{MAP,"{,}"},
{STRING,"''"},
}

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