cel_serializable.h File Reference

Serializable Class Definition. More...

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

Include dependency graph for cel_serializable.h:

This graph shows which files directly or indirectly include this file:

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)


Detailed Description

Serializable Class Definition.

Definition in file cel_serializable.h.


Define Documentation

#define REGISTER_SERIALIZABLECLASS ( ID,
CLASSNAME   ) 

Value:

::Celartem::Serializable::registerClass( \
        ID,#CLASSNAME, typeid(CLASSNAME).name(), CLASSNAME::deserialize)
This macro is used to register user defined Celartem::Serializable derivative classes.

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);

See also:
Celartem::Serializable, Celartem::DataStore, Celartem::DeserializeFunc

REGISTER_SERIALIZABLECLASS2

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)
This macro is used to register user defined Celartem::Serializable derivative classes.

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");

See also:
Celartem::Serializable, Celartem::DataStore, Celartem::DeserializeFunc

REGISTER_SERIALIZABLECLASS

Definition at line 361 of file cel_serializable.h.


This document is automatically generated using doxygen 1.5.4 at Fri Jun 27 18:22:20 2008.