ZeroBuf
0.4.0
Zero-copy, zero-serialize, zero-hassle protocol buffers
|
Allocator base class which does not move existing fields. More...
#include <NonMovingBaseAllocator.h>
Public Member Functions | |
NonMovingBaseAllocator (size_t staticSize, size_t numDynamic) | |
uint8_t * | updateAllocation (size_t index, bool copy, size_t size) final |
Update allocation of the dynamic elem at index to have newSize bytes. More... | |
void | compact (float threshold) final |
Public Member Functions inherited from zerobuf::Allocator | |
virtual uint8_t * | getData ()=0 |
virtual const uint8_t * | getData () const =0 |
virtual size_t | getSize () const =0 |
virtual void | copyBuffer (const void *data, size_t size)=0 |
virtual bool | isMovable () const |
virtual bool | isMutable () const |
template<class T > | |
T * | getItemPtr (const size_t offset) |
template<class T > | |
const T * | getItemPtr (const size_t offset) const |
template<class T > | |
T & | getItem (const size_t offset) |
template<class T > | |
T | getItem (const size_t offset) const |
template<class T > | |
T * | getDynamic (const size_t index) |
template<class T > | |
const T * | getDynamic (const size_t index) const |
uint64_t | getDynamicOffset (const size_t index) const |
size_t | getDynamicSize (const size_t index) const |
void | check (const size_t numDynamics) const |
Protected Member Functions | |
virtual void | _resize (size_t newSize)=0 |
Protected Member Functions inherited from zerobuf::Allocator | |
uint64_t & | _getOffset (const size_t i) |
uint64_t | _getOffset (const size_t i) const |
uint64_t & | _getSize (const size_t i) |
uint64_t | _getSize (const size_t i) const |
void | _checkIndex (const size_t i) const |
Allocator base class which does not move existing fields.
Definition at line 16 of file NonMovingBaseAllocator.h.
|
finalvirtual |
Update allocation of the dynamic elem at index to have newSize bytes.
The offset and size fields in the static section are updated as needed. Does not copy the old data to the new location.
Reimplemented from zerobuf::Allocator.