Base Type Serializable Classes


Detailed Description

Here are links to the low level types Classes provided by the base library. They each manage accessors, serialization, and events. They can be used alone, or as members of a BaseObject class. They all inherit from class BaseType.


Classes

class  PackDynamicType
 PackDynamicType serializes and manages an enumeration number (like PackULong_Enums) that define the shape of what is serialized with. the different shapes have to be registered through RegisterShapeConstructors() at construction, so it has to be extended to be active. See exemple in VedaLibImage / PackDynamicFloat. More...
class  PackFloat
 Base type managing a serializable float value. a float type is serialized to 3 bytes, or 1 byte if value is 0.0f. once read, the 4th IEEE float byte is always set to 0, so that the mantissa is only 15 bit long, not 23 as usual. PackFloat, like all its inherited classes, can be inited with a special constructor where you use a VectorDimension enum. You can choose to init a PackFloat with PackFloat::vd_X if you need one dimension o represent a value, or use vd_XY, for example to define a 2D vector, vd_XYZ for a 3D vector, or vd_XYZD for a dated 3D vector. Note extension library VedaLibMath 's VirtualEquation::Compute() was based on float[4] parameters. More...
class  PackFloat_FixedPoint
 Base type managing a float, but serialized like a PackLong. You provide a const number at construction that fixes a number of bit after the point. For example, 1 bit after the point will make possible: 0.0f , 0.5f, 1.0f, 1.5f,... 2 bits after the point will manage: 0.0f,0.25f,0.5f,0.75f,1.0f,1.25f,... More...
class  PackFloatByte_Color
 It specify PackFloatByte_Limits to express a R,G,B color. this specification is adressed with GetClassID() to interfaces. in non-editable mode, it is PackFloatByte_Limits typedef. More...
class  PackFloatByte_Limits
 manage a float value, but serialize it in 1 byte, where the 256 value domain is scaled between 2 float given at inition. default ends are:[ 0.0f , 1.0f [ More...
class  PackList
 Base type managing a list of any PackSerializable (or inherited) Objects from the same class. In edition mode, you can grow or shorten the list. GetFirstCell() give you a first 'PackListCell', then you can scan the list element with PackListCell::GetNextBrotherCell() and PackListCell::GetManagedObject(). More...
class  PackList_TimeBlockTrack
 List that defines a set of TimeTrackElement extended objects. the difference with PackList_TimeTrack is that elements serialize block length and not dates... More...
class  PackList_TimeTrack
 List that defines a set of TimeTrackElement extended objects. Each elements define when they begin, when they end, and an order number, which is different from zero if another element is in the same time range. The Goal with this class is to unify the ways to create timed lists, that can be managed by a single GUI gadget for script or spline management. It was actually made to be used in spline key list, a script manager this is only a simple serializable class. More...
class  PackLong
 Base type managing "28 bit relative integer", which serialize a number between [-(256Mb-1),256Mb-1], which can be written on 1, 2,3 or 4 bytes when needed. It is used for the automated serialization managed by class PackStruct. It outputs a "signed int" you access with Get(). More...
class  PackLong_WithLimits
 PackLong_WithLimits specialize PackLong to define a min and max value possible for this signed integer value. Specify these min,max after serialisation member registration. When compiled as non-editable, this class become a classic PackLong, nothing more is compiled. More...
class  PackObjectReference
 Base type managing a serializable reference to another object in the same context. a BaseObject can use a PackObjectReference as a member, and when registering it, you specify a pointable base class. Then the PackObjectReference will be able to point any object in the context that match this pointable class, or its inherited classes.
You get the pointer with GetObjectPointer(). Getting NULL is valid, and simply means that nothing is pointed. You change the pointer with SetObjectPointer(), and you should check its enum_SetReferenceResult errorcode.
Please, don't stock a pointer from GetObjectPointer() elsewhere between two functions, because PackObjectReference are dynamic pointers, that can change or become NULL during edition. Registering a PackObjectReference member in a BaseObject constructor can look like this:. More...
class  PackResource
 Base type managing a file as a resource. the file can be external, on the disk, or internal, which means linked into the serialized context. In all compilation modes, You get the resource with GetBinary(). In editable mode, you can set a binary file You Set() and Get() a file name relative to the executable path, and choose if it should be linked while serialized, or just read from the file at inition. In all cases, you get the binary with GetBinary() It is used for the automated serialization. More...
class  PackString
 Base type managing a zero-ended ascii string. It is used for the automated serialization. More...
class  PackString_MultipleLines
 Extension to PackString to manages long texts with multiple lines. When used in non editable compilation mode, it is cast as a PackString. More...
class  PackStruct
 Base type managing a suit of any PackSerializable (or inherited) Objects, which types are differents but can't be changed. To use a PackStruct, register a list of PackSerializable objects in construction. This objects must be already allocated. PackStruct doesn't manage the existance of the listed objects. It just allows to re-serialize their values. This list must not vary in the life of the object, so that it can be serialized in and out again and again. For a dynamic List handling objects from the same class, look: PackList. More...
class  PackTreeCell
 base type managing a Tree database of any PackSerializable (or inherited) Objects. the object type managed is unique and defined at construction, by passing a function that do return a new object. More...
class  PackULong
 Base type managing "28 bit unsigned long", which serialize a number between [0,512Mb-1], which can be written on 1, 2,3 or 4 bytes when needed. It is used for the automated serialization managed by class PackStruct. It outputs an "unsigned int" you access with Get(). More...
class  PackULong_Enums
 PackULong_Enums specialize PackULong to define from 1 to 28 bit bitfield where each bit stands as a boolean value with a given meaning. More...
class  PackULong_Flags
 PackULong_Flags specialize PackULong to define from 1 to 28 bit bitfield where each bit stands as a boolean value with a given meaning. More...
class  PackULong_RandomSeed
 PackULong_RandomSeed specializes PackULong to express a random number seed generator, and provide a random function, for procedural purposes. PackULong is a base type managing "28 bit unsigned long", which serializes a number between [0,512Mb-1], which can be written on 1, 2,3 or 4 bytes when needed. More...


      /\/\        4         N         k         !         N         D
                      _______  _ __ ___  _____            ___ _ _  ____
     ___________  __//___   /________  |/    / ___________\_______/    \
    /   _   _   \/   _     /    _   /      _/_/____/    _       __     /
   /    /   /       /     /    /    \      \/     /    /    \   \     /
  \\___/___/___/    ¯    _____/_____/       ______\___/_____/\________\\
               \________/_ ___ __ l____\      /elD!  
                 http://www.m4nkind.com \____/