AbstractDataTypeFunctions can be used as base class of a class which implements the DataType functions for a type. AbstractDataTypeFunctions implements all DataType functions, either by returning an error, showing a CriticalStop or forwarding to other functions. For example the MoveFrom function is implemented by at first calling Destruct and then MoveConstruct, while Destruct and MoveConstruct show a CriticalStop(). At least the functions Construct, Destruct, MoveConstruct, CopyFrom have to be implemented for a working DataType and IsEqual, Compare, GetHashCode to support comparisons. The other functions can be implemented to improve the performance.
|
static void | AddReference (const DataTypeImpl *type, const void *obj) |
|
static void | RemoveReference (const DataTypeImpl *type, const void *obj) |
|
static Result< void * > | Create (const DataTypeImpl *type) |
|
static Result< void > | DescribeIO (const DataTypeImpl *type, const DataSerializeInterface &dsi) |
|
static void | Construct (const DataTypeImpl *type, void *dest, Int dstride, Int count) |
|
static void | Destruct (const DataTypeImpl *type, const void *dest, Int dstride, Int count) |
|
static void | MoveConstruct (const DataTypeImpl *type, void *dest, Int dstride, void *src, Int sstride, Int count) |
|
static void | MoveFrom (const DataTypeImpl *type, void *dest, Int dstride, void *src, Int sstride, Int count) |
|
static Result< void > | CopyFrom (const DataTypeImpl *type, void *dest, Int dstride, const void *src, Int sstride, Int count) |
|
static Result< void > | InitData (const DataTypeImpl *type, DataMemBlock *mem) |
|
static void | FreeData (const DataTypeImpl *type, DataMemBlock *mem) |
|
static const void * | GetPtr (const DataTypeImpl *type, const DataMemBlock *s) |
|
static Result< void > | CopyData (const DataTypeImpl *type, DataMemBlock *d, const DataMemBlock *s) |
|
static Result< void > | InitCopyData (const DataTypeImpl *type, DataMemBlock *d, const DataMemBlock *s) |
|
static void | MoveData (const DataTypeImpl *type, DataMemBlock *d, DataMemBlock *s) |
|
static void | InitMoveData (const DataTypeImpl *type, DataMemBlock *d, DataMemBlock *s) |
|
static Bool | IsEqualData (const DataTypeImpl *type, const DataMemBlock *a, const DataMemBlock *b, EQUALITY equality) |
|
static Bool | IsEqual (const DataTypeImpl *type, const void *a, const void *b, EQUALITY equality) |
|
static COMPARERESULT | Compare (const DataTypeImpl *type, const void *a, const void *b) |
|
static HashInt | GetHashCode (const DataTypeImpl *type, const void *a) |
|
static UniqueHash | GetUniqueHashCode (const DataTypeImpl *type, const void *a) |
|
static String | ToStringImpl (const DataTypeImpl *type, const void *a, const FormatStatement *formatStatement) |
|