![]() |
XII Release 0.1.0
|
#include <InstanceDataAllocator.h>
Public Member Functions | |
| xiiUInt32 | AddDesc (const xiiInstanceDataDesc &desc) |
| Adds the given desc to internal list of data that needs to be allocated and returns the byte offset. | |
| void | ClearDescs () |
| Resets all internal state. | |
| void | Construct (xiiByteBlobPtr blobPtr) const |
| Constructs the instance data objects, within the pre-allocated memory block. | |
| void | Destruct (xiiByteBlobPtr blobPtr) const |
| Destructs the instance data objects. | |
| xiiBlob | AllocateAndConstruct () const |
| Allocates memory and constructs the instance data objects inside it. The returned xiiBlob must be stored somewhere. | |
| void | DestructAndDeallocate (xiiBlob &ref_blob) const |
| Destructs and deallocates the instance data objects and the given memory block. | |
| xiiUInt32 | GetTotalDataSize () const |
| The total size in bytes taken up by all instance data objects that were added. | |
Manages complex multi-type instance data allocation with proper construction and destruction.
This allocator is designed for systems that need to allocate heterogeneous data structures in a single memory block, such as VM instances, state machines, or script execution contexts. It calculates proper alignments for mixed data types and handles construction/destruction automatically.
Typical workflow:
|
nodiscard |
Adds the given desc to internal list of data that needs to be allocated and returns the byte offset.
Copyright (c) Theophilus Eriata. All Rights Reserved.