MemoryImage.hpp
A managed set of Bytes to store any kind of data.
Note
Status: ALPHA
-
class MemoryImage
- #include <MemoryImage.hpp>
A helper class for DataMap; tracks a memory image (sequence of bytes).
Public Functions
-
MemoryImage() = default
Build a default MemoryImage with no initial memory.
-
inline MemoryImage(size_t in_size)
Build a memory image of a specific size (but uninitialized.)
-
inline ~MemoryImage()
Destruct a MemoryImage.
-
inline size_t GetSize() const
-
inline size_t GetInitSize() const
-
template<typename T = void>
inline Ptr<T> GetPtr(size_t pos) Get a typed pointer to a specific position in this image.
-
template<typename T>
inline T &Get(size_t pos) Get proper references to an object represented in this image.
-
template<typename T>
inline std::span<T> Get(size_t pos, size_t count) Get proper spans to sets of same-type objects represented in this image.
-
inline void RawResize(size_t new_size)
Change the size of this memory. Assume all cleanup and setup is done elsewhere.
-
inline void RawCopy(const MemoryImage &from_memory)
Copy all of the bytes directly from another memory image. Size manipulation must be done beforehand to ensure sufficient space is available.
-
inline void RawMove(MemoryImage &from_memory)
Steal the memory from the image passed in. Current memory should have been cleaned up and set to null already.
-
template<typename T, typename ...ARGS>
inline void Construct(size_t id, ARGS&&... args) Build a new object of the provided type at the memory position indicated.
-
template<typename T>
inline void Destruct(size_t id) Destruct an object of provided type at memory position indicated; don’t release memory!
-
template<typename T>
inline void CopyObj(size_t id, const MemoryImage &from_image) Copy an object from another MemoryImage with an identical DataLayout.
-
template<typename T>
inline void MoveObj(size_t id, MemoryImage &from_image) Move an object from another MemoryImage with an identical DataLayout.
Private Functions
-
inline void Fuzz()
Private Members
-
size_t size = 0
Size of current image.
-
size_t init_to = 0
How far of the current image is initialized?
Friends
- friend class DataLayout
-
MemoryImage() = default