Photon C++ Client API
5.0.7.3
|
Public Member Functions | |
virtual nByte | getTypeCode (void) const |
Public Member Functions inherited from CustomTypeBase | |
virtual bool | compare (const CustomTypeBase &other) const =0 |
virtual void | duplicate (CustomTypeBase *pRetVal) const =0 |
virtual void | deserialize (const nByte *pData, short length)=0 |
virtual short | serialize (nByte *pRetVal) const =0 |
virtual JString & | toString (JString &retStr, bool withTypes=false) const=0 |
JString | toString (bool withTypes=false) const |
Public Member Functions inherited from Base | |
virtual | ~Base (void)=0 |
Public Member Functions inherited from LoggingBase< Base > | |
virtual | ~LoggingBase (void)=0 |
Public Member Functions inherited from ToString | |
virtual | ~ToString (void) |
virtual JString | typeToString (void) const |
virtual JString & | toString (JString &retStr, bool withTypes=false) const =0 |
JString | toString (bool withTypes=false) const |
Static Public Member Functions | |
static void | registerType (void) |
static void | unregisterType (void) |
Static Public Member Functions inherited from LoggingBase< Base > | |
static void | setListener (const BaseListener *pBaseListener) |
static int | getDebugOutputLevel (void) |
static bool | setDebugOutputLevel (int debugLevel) |
static const LogFormatOptions & | getLogFormatOptions (void) |
static void | setLogFormatOptions (const LogFormatOptions &options) |
Static Public Attributes | |
static const nByte | TypeCode |
The CustomType class provides you with an interface, to add support for additional data-types.
We only support a certain subset of Datatypes out of the box. If you need support for further datatypes, then you can easily add this support yourself by subclassing this class template and providing suitable implementations for the pure virtual functions, which are inherited from CustomTypeBase, in your subclass. You should only subclass every typecode once. typeCode 0 should be considered as reserved. So your first custom type would inherit from CustomType<1>, the second one from CustomType<2> and so on. Subclassing the same typecode multiple times will lead into undefined behavior as the typecode will determine the class as instance of which serialized data should be interpreted.
|
static |
This static function registers the custom type and has to be called once on each concrete subclass, before any instance of that concrete subclass gets created.
|
static |
This static function unregisters a custom type and has to be called once for each concrete subclass after the last instance of that subclass has been deallocated.
|
static |
Check this public constant to find out the typecode of a custom type at runtime. This should normally not be of any interest.