ZeroBuf  0.5.0
Zero-copy, zero-serialize, zero-hassle protocol buffers
zerobuf::NonMovingBaseAllocator Class Referenceabstract

Allocator base class which does not move existing fields. More...

#include <NonMovingBaseAllocator.h>

+ Inheritance diagram for zerobuf::NonMovingBaseAllocator:
+ Collaboration diagram for zerobuf::NonMovingBaseAllocator:

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 >
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
 

Detailed Description

Allocator base class which does not move existing fields.

Definition at line 16 of file NonMovingBaseAllocator.h.

Member Function Documentation

uint8_t* zerobuf::NonMovingBaseAllocator::updateAllocation ( size_t  ,
bool  ,
size_t   
)
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.

Returns
the pointer to the elem at the new place, or nullptr if it was not moved.

Reimplemented from zerobuf::Allocator.


The documentation for this class was generated from the following file: