#include "cel_memory.h"
#include "cel_autoptr.h"
#include "cel_string.h"
#include "cel_guid.h"
#include <vector>
#include <typeinfo>


Go to the source code of this file.
Namespaces | |
| namespace | Celartem |
Classes | |
| class | Celartem::Serializable |
| struct | Celartem::SerializableDataHelper< T, IS_POD > |
| struct | Celartem::SerializableDataHelper< T, true > |
| class | Celartem::SerializableData< T > |
Defines | |
| #define | REGISTER_SERIALIZABLECLASS(ID, CLASSNAME) |
| #define | REGISTER_SERIALIZABLECLASS2(ID, CLASSNAME, DISPNAME) |
Typedefs | |
| typedef AutoPtr< Serializable >(* | Celartem::DeserializeFunc )(Stream *inStream, size_t inLevel, Endian inEndian) |
Definition in file cel_serializable.h.
| #define REGISTER_SERIALIZABLECLASS | ( | ID, | |||
| CLASSNAME | ) |
Value:
::Celartem::Serializable::registerClass( \
ID,#CLASSNAME, typeid(CLASSNAME).name(), CLASSNAME::deserialize)
If you don't need to change the display name of registered class, use REGISTER_SERIALIZABLECLASS like follows:
REGISTER_SERIALIZABLECLASS( "{F9BD76CF-1077-4bee-9DA9-1AC9B9E1A751}", MySerializableClass);
Definition at line 338 of file cel_serializable.h.
| #define REGISTER_SERIALIZABLECLASS2 | ( | ID, | |||
| CLASSNAME, | |||||
| DISPNAME | ) |
Value:
::Celartem::Serializable::registerClass( \
ID,DISPNAME, typeid(CLASSNAME).name(), CLASSNAME::deserialize)
If your class does not have Celartem::Serializable feature natively, you may use Celartem::SerializableData<> adapter to deal with it, and then you feel to simplify the name obtained from typeinfo structure. REGISTER_SERIALIZABLECLASS2 is just for this purpose:
REGISTER_SERIALIZABLECLASS2( "{257382B3-79F2-486a-8F4E-F3577B48E940}", SerializableData<MyDataClass>, "MyDataClass");
Definition at line 361 of file cel_serializable.h.