32#include <Pt/SerializationInfo.h>
33#include <Pt/SerializationContext.h>
137 {
onSetId(
id.c_str(),
id.size() ); }
143 void setId(
const char*
id, std::size_t len)
254 virtual void onSetId(
const char*
id, std::size_t len) = 0;
352 _current->setId(
id, len);
358 _current->setTypeName(type, len);
363 _current->setString(value, len);
369 _current->setBinary(data, length);
375 _current->setChar(ch);
381 _current->setBool(value);
387 _current->setInt64(value);
393 _current->setUInt64(value);
399 _current->setLongDouble(value);
405 _current->setReference(
id, len);
451 if( ! _current->parent() )
453 *_current >> Pt::load() >>= *_type;
459 _current = _current->
parent();
499 _current->setId(
id, len);
505 _current->setTypeName(type, len);
510 _current->setString(value, len);
516 _current->setBinary(data, length);
522 _current->setChar(ch);
528 _current->setBool(value);
534 _current->setInt64(value);
540 _current->setUInt64(value);
546 _current->setLongDouble(value);
552 _current->setReference(
id, len);
598 if( ! _current->parent() )
603 _current = _current->
parent();
Composer * onBeginDictValue()
Begins composition of a dict value.
Definition Composer.h:588
void onSetString(const Pt::Char *value, std::size_t len)
Compose a string value.
Definition Composer.h:508
void onSetId(const char *id, std::size_t len)
Set reference ID.
Definition Composer.h:497
void onSetBool(bool value)
Compose a bool value.
Definition Composer.h:526
Composer * onBeginMember(const char *name, std::size_t len)
Begin composition os a struct member.
Definition Composer.h:556
void onSetReference(const char *id, std::size_t len)
Compose a reference.
Definition Composer.h:550
Composer * onBeginDictKey()
Begins composition of a dict key.
Definition Composer.h:580
Composer * onBeginDictElement()
Begins composition of a dict key.
Definition Composer.h:572
void onSetFloat(long double value)
Compose a floating point value.
Definition Composer.h:544
BasicComposer()
Construct with context.
Definition Composer.h:478
void onSetInt(Pt::int64_t value)
Compose a integer value.
Definition Composer.h:532
void onSetTypeName(const char *type, std::size_t len)
Set type name.
Definition Composer.h:503
Composer * onBeginElement()
Begins composition of a sequence member.
Definition Composer.h:564
void onSetBinary(const char *data, std::size_t length)
Compose a binary value.
Definition Composer.h:514
Composer * onFinish()
Finishes composition of a struct or sequence member.
Definition Composer.h:596
void onSetUInt(Pt::uint64_t value)
Compose a unsigned integer value.
Definition Composer.h:538
void onSetChar(const Pt::Char &ch)
Compose a character value.
Definition Composer.h:520
void begin(Pt::SerializationInfo &si)
Begin composing a type.
Definition Composer.h:484
Composer * onBeginDictValue()
Begins composition of a dict value.
Definition Composer.h:441
void onSetString(const Pt::Char *value, std::size_t len)
Compose a string value.
Definition Composer.h:361
void onSetId(const char *id, std::size_t len)
Set reference ID.
Definition Composer.h:350
void onSetBool(bool value)
Compose a bool value.
Definition Composer.h:379
Composer * onBeginMember(const char *name, std::size_t len)
Begin composition os a struct member.
Definition Composer.h:409
void onSetReference(const char *id, std::size_t len)
Compose a reference.
Definition Composer.h:403
void begin(T &type)
Begin composing a type.
Definition Composer.h:337
Composer * onBeginDictKey()
Begins composition of a dict key.
Definition Composer.h:433
Composer * onBeginDictElement()
Begins composition of a dict key.
Definition Composer.h:425
void onSetFloat(long double value)
Compose a floating point value.
Definition Composer.h:397
void onSetInt(Pt::int64_t value)
Compose a integer value.
Definition Composer.h:385
void onSetTypeName(const char *type, std::size_t len)
Set type name.
Definition Composer.h:356
Composer * onBeginElement()
Begins composition of a sequence member.
Definition Composer.h:417
void onSetBinary(const char *data, std::size_t length)
Compose a binary value.
Definition Composer.h:367
Composer * onFinish()
Finishes composition of a struct or sequence member.
Definition Composer.h:449
void onSetUInt(Pt::uint64_t value)
Compose a unsigned integer value.
Definition Composer.h:391
void onSetChar(const Pt::Char &ch)
Compose a character value.
Definition Composer.h:373
BasicComposer(SerializationContext *context=0)
Construct with context.
Definition Composer.h:330
Composes types during serialization.
Definition Composer.h:101
void setInt(Pt::int64_t value)
Composes a signed integer type.
Definition Composer.h:176
virtual void onSetReference(const char *, std::size_t)
Compose a reference.
Definition Composer.h:285
void setString(const Pt::String &value)
Composes a string value.
Definition Composer.h:148
void setId(const std::string &id)
Sets the reference id of the type to compose.
Definition Composer.h:136
virtual Composer * onBeginMember(const char *, std::size_t)
Begin composition os a struct member.
Definition Composer.h:289
Composer * beginElement()
Begins composition of a sequence member.
Definition Composer.h:214
void setId(const char *id, std::size_t len)
Sets the reference id of the type to compose.
Definition Composer.h:143
Composer * parent() const
Returns the parent composer.
Definition Composer.h:115
void setTypeName(const std::string &type)
Sets the type name of the type to compose.
Definition Composer.h:122
Composer()
Constructor.
Definition Composer.h:245
void setBinary(const char *data, std::size_t length)
Composes a binary value.
Definition Composer.h:158
virtual Composer * onBeginElement()
Begins composition of a sequence member.
Definition Composer.h:294
void setString(const Pt::Char *value, std::size_t len)
Composes a string value.
Definition Composer.h:153
virtual void onSetBinary(const char *, std::size_t)
Compose a binary value.
Definition Composer.h:261
Composer * beginDictKey()
Begins composition of a dict key.
Definition Composer.h:229
void setParent(Composer *parent)
Sets the parent composer.
Definition Composer.h:110
virtual void onSetFloat(long double)
Compose a floating point value.
Definition Composer.h:281
void setFloat(long double value)
Composes a float value.
Definition Composer.h:189
virtual ~Composer()
Destructor.
Definition Composer.h:105
virtual Composer * onBeginDictElement()
Begins composition of a dict key.
Definition Composer.h:299
void setUInt(Pt::int64_t value)
Composes an unsigned integer type.
Definition Composer.h:184
Composer * finish()
Finishes composition of a struct or sequence member.
Definition Composer.h:239
Composer * beginMember(const std::string &name)
Begins composition of a struct member.
Definition Composer.h:204
void setReference(const char *id, std::size_t len)
Composes a reference.
Definition Composer.h:199
virtual Composer * onFinish()
Finishes composition of a struct or sequence member.
Definition Composer.h:314
virtual void onSetBool(bool)
Compose a bool value.
Definition Composer.h:269
virtual void onSetInt(Pt::int64_t)
Compose a integer value.
Definition Composer.h:273
virtual Composer * onBeginDictKey()
Begins composition of a dict key.
Definition Composer.h:304
void setTypeName(const char *type, std::size_t len)
Sets the type name of the type to compose.
Definition Composer.h:129
void setChar(const Pt::Char &ch)
Composes a char value.
Definition Composer.h:163
void setReference(const std::string &id)
Composes a reference.
Definition Composer.h:194
virtual void onSetString(const Pt::Char *, std::size_t)
Compose a string value.
Definition Composer.h:257
void setBool(bool value)
Composes a boolean value.
Definition Composer.h:168
Composer * beginDictElement()
Begins composition of a dict key.
Definition Composer.h:224
virtual Composer * onBeginDictValue()
Begins composition of a dict value.
Definition Composer.h:309
Composer * beginDictValue()
Begins composition of a dict value.
Definition Composer.h:234
Composer * beginMember(const char *name, std::size_t len)
Begins composition of a struct member.
Definition Composer.h:209
virtual void onSetId(const char *id, std::size_t len)=0
Set reference ID.
virtual void onSetUInt(Pt::uint64_t)
Compose a unsigned integer value.
Definition Composer.h:277
virtual void onSetTypeName(const char *, std::size_t)
Set type name.
Definition Composer.h:250
virtual void onSetChar(const Pt::Char &)
Compose a character value.
Definition Composer.h:265
Context for the serialization of types.
Definition Api-SerializationContext.h:26
SerializationError(const std::string &msg)
Construct with message.
Represents arbitrary types during serialization.
Definition SerializationInfo.h:59
SerializationInfo & addElement()
Add a sequence element.
SerializationInfo & addDictValue()
Add a dict value.
SerializationInfo & addDictKey()
Add a dict key.
SerializationInfo & addDictElement()
Add a dict element.
SerializationInfo & addMember(const std::string &name)
Add a struct member.
Definition SerializationInfo.h:449
Unicode capable basic_string.
Definition Api-String.h:67
size_type size() const
Returns the length of the string.
Definition Api-String.h:263
const Pt::Char * c_str() const
Returns a null terminated C string.
Definition Api-String.h:288
int_type int64_t
Signed 64-bit integer type.
Definition Api-Types.h:59
uint_type uint64_t
Unsigned 64-bit integer type.
Definition Api-Types.h:66
Core module.
Definition Allocator.h:33
Unicode character type.
Definition String.h:67