TSL stands for 'Trivial Serialization Library': it is a simple framework for C++11 serialization
enums: an automatic underlaying type detection for enums has been
implemented allowing thereby the serialization / deserialization of any type
of enums through the usage of the proper primitive type APIs.
scalar types: supported type with std library correspondence
TSL type | std type |
---|---|
Bool | bool |
Char | char |
Int8 | int8_t |
Int16 | int16_t |
Int32 | int32_t |
Int64 | int64_t |
UInt8 | uint8_t |
UInt16 | uint16_t |
UInt32 | uint32_t |
UInt64 | uint64_t |
Float | float |
Double | double |
TSL type | std type |
---|---|
String | string |
tsl::Variant various improvements:
supported STL containers:
supported pointers:
TSL_Alias: Object aliases for simplified hand writing of archives.
Now it is possible to specify an alias for a Serializable object or pointer
to serializable object through the TSL_Alias tag and later to refer to the
same object in other pointer instances specifying the alias name through
the TSL_RefAlias tag (this feature is possible ONLY for pointers).
TSL_RefID : 'referred objects' implementation through new tag definition.
Even if available for internal use only it improve the generated archive
format.
error reporting:
tsl::parser::Helper for parser errors;
Exception safety: introduction of the open/close() methods and
archive manipulators. The [I,O]Archive destructors potentially perform
a further archive parsing/generation. In order to preserve basic exception
safety, the destructor never throw anymore. For the caller environment
there are 2 alternatives in order to catch the eventual residual errors
during the closure of the archive:
Runtime support extension with type name cache
support for pure plugin
support for not serializable object serialization
escaped character support in strings
auto-register proxy support for serializable objects
archive formats: