StandardSerializer

class ReflectExport(reflect) StandardSerializer : public Serializer

A basic ascii text serializer.

See Also

Summary
StandardSerializerA basic ascii text serializer.
Functions
BeginWrites a serialization start tag.
EndWrites a serialization end tag, see Begin.
Serialize(bool)Writes “true”/”false”.
Serialize(long)Writes “%ld”, e.g., 3 -> “3”
Serialize(unsigned long)Writes “0x%lX”, e.g., 32u -> “0x20”
Serialize(double)Writes “%#g”.
Serialize(const Dynamic *obj)Writes “#<<obj->GetClass()->GetCategory()->Name()>>” and then defers to obj->GetClass()->GetCategory()->SerializeDynamic(obj, Reflector(*this)).
Reference(const Dynamic *object)Writes “@<<count>>” where count is the number of references made so far.
SerializeTextWrites nbytes of text as a string with quotes around it and some standard escapes.
SerializeDataSerializes nbytes of data as hex pairs A3 45 23 8F ...
SerializeEnumWrites the enum value as a bare string (no quotes).
SerializePropertyWrites the property by deferring to its Property::Serialize method.

Functions

Begin

bool Begin(const SerializationTag &)

Writes a serialization start tag.

Tags are written in the following formats

OBJECT”(<<type>> ...  )”
PROPERTY”$<<name>>= ...  ;”
ATTRIBUTE”[<<name>>= ...  ]”
ITEM”{ ...  }”

End

bool End(const SerializationTag &)

Writes a serialization end tag, see Begin.

Serialize(bool)

bool Serialize(bool)

Writes “true”/”false”.

Serialize(long)

bool Serialize(long)

Writes “%ld”, e.g., 3 -> “3”

Serialize(unsigned long)

bool Serialize(unsigned long)

Writes “0x%lX”, e.g., 32u -> “0x20”

Serialize(double)

bool Serialize(double)

Writes “%#g”.  e.g., 3 -> “3.0”

Serialize(const Dynamic *obj)

bool Serialize(const Dynamic *object)

Writes “#<<obj->GetClass()->GetCategory()->Name()>>” and then defers to obj->GetClass()->GetCategory()->SerializeDynamic(obj, Reflector(*this)).

For instance, a Class * would serializes as

#Class "<<name of class>>"

and a persistent object would serialize as

#Persistent
  (<<type of object>>
     $x = 34;
     $s = "hello";
  )

Reference(const Dynamic *object)

bool Reference(const Dynamic *object)

Writes “@<<count>>” where count is the number of references made so far.

SerializeText

bool SerializeText(const char *text,
unsigned nbytes)

Writes nbytes of text as a string with quotes around it and some standard escapes.

SerializeData

bool SerializeData(const void *data,
unsigned nbytes)

Serializes nbytes of data as hex pairs A3 45 23 8F ...

SerializeEnum

bool SerializeEnum(int value,
const EnumType *clazz)

Writes the enum value as a bare string (no quotes).  If the enum value is not mapped in clazz it serializes as an unsigned number.

SerializeProperty

bool SerializeProperty(const void *object,
const Property *prop)

Writes the property by deferring to its Property::Serialize method.  TODO: Figure out how/if this can prevent slicing when using CompositeSerializers.

class ReflectExport(reflect) StandardSerializer : public Serializer
A basic ascii text serializer.
bool Begin(const SerializationTag &)
Writes a serialization start tag.
bool End(const SerializationTag &)
Writes a serialization end tag, see Begin.
bool Serialize(bool)
Writes “true”/”false”.
bool Serialize(long)
Writes “%ld”, e.g., 3 -> “3”
bool Serialize(unsigned long)
Writes “0x%lX”, e.g., 32u -> “0x20”
bool Serialize(double)
Writes “%#g”.
bool Serialize(const Dynamic *object)
Writes “#<<obj->GetClass()->GetCategory()->Name()>>” and then defers to obj->GetClass()->GetCategory()->SerializeDynamic(obj, Reflector(*this)).
bool Reference(const Dynamic *object)
Writes “@<<count>>” where count is the number of references made so far.
bool SerializeText(const char *text,
unsigned nbytes)
Writes nbytes of text as a string with quotes around it and some standard escapes.
bool SerializeData(const void *data,
unsigned nbytes)
Serializes nbytes of data as hex pairs A3 45 23 8F ...
bool SerializeEnum(int value,
const EnumType *clazz)
Writes the enum value as a bare string (no quotes).
bool SerializeProperty(const void *object,
const Property *prop)
Writes the property by deferring to its Property::Serialize method.
virtual void Serialize(const void *in,
void *out,
Reflector &reflector) const = 0
Reads or writes the represented data using a Reflector.
class ReflectExport(reflect) Serializer
Defines the interface for serialization.
class ReflectExport(reflect) StandardDeserializer : public Deserializer
A basic ascii text deserializer.
Close