SERIALIZERITEM Class Reference

Serializer Item definition for single member of structure or class. More...

#include <mi32/serializeritem.h>

List of all members.

Public Types

enum  ACTION {
  ACTION_None = 0x0000, ACTION_ReadBegin = 0x0001, ACTION_ReadEnd = 0x0002, ACTION_WriteBegin = 0x0004,
  ACTION_WriteEnd = 0x0008, ACTION_Read = 0x0010, ACTION_Write = 0x0020
}
typedef ERRVALUE(* CBFUNC )(SERIALIZER &, const SERIALIZERITEM *, void *data, ACTION action)
enum  FLAGS {
  FLAG_None = 0x0000, FLAG_NoWrite0 = 0x0001, FLAG_NoWrite = 0x0002, FLAG_NoRead = 0x0004,
  FLAG_FileNoExist0 = 0x0008, FLAG_NoReportMissingFile = 0x0010, FLAG_Skippable = 0x0020, FLAG_AddOffsetCB = 0x0040,
  FLAG_FindFileImmed = 0x0080, FLAG_DontAskLinkFile = 0x0100, FLAG_ArrayNumItems = 0x0200, FLAG_FixedSizeArray = 0x0400
}
enum  TYPE {
  TYPE_End = 0, TYPE_UINT8 = 1, TYPE_INT8 = 2, TYPE_UINT16 = 3,
  TYPE_INT16 = 4, TYPE_UINT32 = 5, TYPE_INT32 = 6, TYPE_BitUINT32 = 7,
  TYPE_UInt = 8, TYPE_Int = 9, TYPE_Float = 10, TYPE_Double = 11,
  TYPE_Bool = 12, TYPE_UINT8_Array = 13, TYPE_Enum = 14, TYPE_StringU = 20,
  TYPE_MISTRING = 21, TYPE_MISTRING_ML = 22, TYPE_StringMLU = 23, TYPE_MISTRINGLIST = 24,
  TYPE_StringA = 25, TYPE_StringMLRaw = 28, TYPE_FILEPATH = 31, TYPE_RVCOBJITEM = 32,
  TYPE_RVCOBJITEMLIST = 33, TYPE_RVCOBJECTNAME = 34, TYPE_RVCOBJITEMFILE = 35, TYPE_RVCOBJITEMOBJECT = 36,
  TYPE_RVCOBJECTFILE = 37, TYPE_RVCOBJECTOBJECT = 38, TYPE_RVCOBJITEMURL = 39, TYPE_Special = 40,
  TYPE_Struct = 42, TYPE_StructPtr = 43, TYPE_StructPtrArray = 44, TYPE_SIMPLE_ARRAY = 45,
  TYPE_DOUBLE_ARRAY = 46, TYPE_COLOR = 50, TYPE_DRECT2D = 51, TYPE_DPOINT2D = 52,
  TYPE_DPOINT3D = 53, TYPE_POINTSTYLE = 55, TYPE_LINESTYLE = 56, TYPE_POLYSTYLE = 57,
  TYPE_TEXTSTYLE = 58, TYPE_LPOINT2D = 59, TYPE_LRECT2D = 60, TYPE_OLDPROJPARMTOCRS = 61,
  TYPE_COORDREFSYS = 62, TYPE_REGION2D = 63, TYPE_DRECT3D = 64, TYPE_DOUBLE_RANGE = 65,
  TYPE_SERIALIZABLE = 90, TYPE_SERIALIZABLEPTR = 91, TYPE_InternalSer = 998, TYPE_Start = 999
}

Static Public Member Functions

static SERIALIZERITEMMergeArrays (const SERIALIZERITEM *def1, int offset1, const SERIALIZERITEM *def2, int offset2)
static SERIALIZERITEMMergeArrays (const SERIALIZERITEM *def1, const SERIALIZERITEM *def2)

Public Attributes

CBFUNC cbfunc
int extra
FLAGS flags
const char * name
int offset
const SERIALIZERITEMsubstruct
TYPE type

Detailed Description

Serializer Item definition for single member of structure or class.

The meaning of the "extra" field is dependent on the "type" field:

"type" UINT8_Array Number of array entries StringA, StringU Number of bytes in entry (use membersize in definition) Object, SubObject Object type (0 for OTYPE_ALL) BitUINT32 Bit number to use, 0 = lowest StructPtr, StructPtrArray Size of structure to allocate Enum Size of member

When handling TYPE_Special items, the cbfunc will be called with ACTION_Read or ACTION_Write. The cbfunc is responsible for actually reading and writing the data using the SERIALIZER class reference provided.


Member Typedef Documentation

typedef ERRVALUE(* SERIALIZERITEM::CBFUNC)(SERIALIZER &, const SERIALIZERITEM *, void *data, ACTION action)

Member Enumeration Documentation

Enumerator:
ACTION_None 
ACTION_ReadBegin 
ACTION_ReadEnd 
ACTION_WriteBegin 
ACTION_WriteEnd 
ACTION_Read 
ACTION_Write 
Enumerator:
FLAG_None 
FLAG_NoWrite0 

Don't write value if not set.

FLAG_NoWrite 

Don't write this item.

FLAG_NoRead 

Don't read this item.

FLAG_FileNoExist0 

When reading PARMITEM_FileName zero string if file doesn't exist.

FLAG_NoReportMissingFile 

Don't report missing file and leave path as read.

FLAG_Skippable 

Item will be ignored if "IgnoreSkippable" set.

FLAG_AddOffsetCB 

Add offset to pointer when passing to callback function.

FLAG_FindFileImmed 

Search for file immediately instead of waiting until looking for object.

FLAG_DontAskLinkFile 

Don't prompt user if can't find linked file.

FLAG_ArrayNumItems 

This is the "NumItems" for an array that follows.

FLAG_FixedSizeArray 

Fixed-size array, "extra" contains number of elements (for simple and some built-in types only, typically with < 256 elements).

Item types.

Enumerator:
TYPE_End 
TYPE_UINT8 
TYPE_INT8 
TYPE_UINT16 
TYPE_INT16 
TYPE_UINT32 
TYPE_INT32 
TYPE_BitUINT32 

Bit value in UINT32, bit specified in "extra".

TYPE_UInt 

unsigned int

TYPE_Int 

int

TYPE_Float 

float

TYPE_Double 

double

TYPE_Bool 

bool

TYPE_UINT8_Array 
TYPE_Enum 

enum, size specified in "extra"

TYPE_StringU 

MIUNICODE string ("extra" contains size).

TYPE_MISTRING 

MISTRING.

TYPE_MISTRING_ML 

Multi-line MISTRING.

TYPE_StringMLU 

Multi-line Unicode string.

TYPE_MISTRINGLIST 

MISTRINGLIST.

TYPE_StringA 

ASCII string ("extra" contains size).

TYPE_StringMLRaw 

Multi-line raw (char*) string (pointer).

TYPE_FILEPATH 

File path.

TYPE_RVCOBJITEM 

RVC::OBJITEM.

TYPE_RVCOBJITEMLIST 

RVC::OBJITEMLIST.

TYPE_RVCOBJECTNAME 

RVC::OBJECTNAME.

TYPE_RVCOBJITEMFILE 

FilePath portion of RVC::OBJITEM.

TYPE_RVCOBJITEMOBJECT 

Object portion of RVC::OBJITEM, type stored in "extra".

TYPE_RVCOBJECTFILE 

FilePath portion of RVC::OBJECT.

TYPE_RVCOBJECTOBJECT 

Object portion of RVC::OBJECT, type stored in "extra".

TYPE_RVCOBJITEMURL 

URL portion of RVC::OBJITEM, type stored in "extra".

TYPE_Special 

Use cbfunc to do read and write.

TYPE_Struct 

Structure/class.

TYPE_StructPtr 

Structure/class pointer, will be allocated if 0, "extra" contains size.

TYPE_StructPtrArray 

Array of structure pointers, "extra" contains size.

TYPE_SIMPLE_ARRAY 

Simple array of scalars, "extra" contains TYPE of array item, only TYPE_UINT8, TYPE_INT16, TYPE_INT32 supported.

TYPE_DOUBLE_ARRAY 

Double-precision array of "double" scalars.

TYPE_COLOR 

COLOR.

TYPE_DRECT2D 

DRECT2D.

TYPE_DPOINT2D 

DPOINT2D.

TYPE_DPOINT3D 

DPOINT3D.

TYPE_POINTSTYLE 

POINTSTYLE.

TYPE_LINESTYLE 

LINESTYLE.

TYPE_POLYSTYLE 

POLYSTYLE.

TYPE_TEXTSTYLE 

TEXTSTYLE.

TYPE_LPOINT2D 

LPOINT2D.

TYPE_LRECT2D 

LRECT2D.

TYPE_OLDPROJPARMTOCRS 

Serialized as OLDPROJPARM, in memory as SPATREF::COORDREFSYS.

TYPE_COORDREFSYS 

SPATREF::COORDREFSYS.

TYPE_REGION2D 

REGION2D.

TYPE_DRECT3D 

DRECT3D.

TYPE_DOUBLE_RANGE 

DOUBLE_RANGE.

TYPE_SERIALIZABLE 

SERIALIZABLE object.

TYPE_SERIALIZABLEPTR 

Pointer to SERIALIZABLE object.

TYPE_InternalSer 
TYPE_Start 

Used internally to start new structure.


Member Function Documentation

static SERIALIZERITEM* SERIALIZERITEM::MergeArrays ( const SERIALIZERITEM def1,
int  offset1,
const SERIALIZERITEM def2,
int  offset2 
) [static]

Merge two item definition arrays with offsets, This is useful when inheriting from a class which already uses an item definition array.

Returns:
New allocated definition array
Parameters:
def1 First definition array
offset1 Offset for first definition array
def2 Second definition array
offset2 Offset for second definition array
static SERIALIZERITEM* SERIALIZERITEM::MergeArrays ( const SERIALIZERITEM def1,
const SERIALIZERITEM def2 
) [static]

Merge two item definition arrays.

This is useful when inheriting from a class which already uses an item definition array.

Returns:
New allocated definition array
Parameters:
def1 First definition array
def2 Second definition array

Member Data Documentation

Callback function for this item.

Extra type-specific data, see TYPE descriptions for usage.

Flags.

const char* SERIALIZERITEM::name

Name of the item, 0 to terminate array, not case-sensitive.

Offset into class/struct.

Sub-structure definition for TYPE_Struct/StructPtr.

Item type.


The documentation for this class was generated from the following file:

Generated on Sun Oct 7 21:33:50 2012 for TNTsdk 2012 by  doxygen 1.6.1