96 assert(index <
count);
102 assert(index <
count);
135 explicit operator bool()
const
197 return find(
string) ?:
add(
string);
202 unsigned offset = ref - 1;
208 return static_cast<const char*
>(
buffer);
226 void*
insert(
unsigned index,
const void* data =
nullptr,
size_t itemCount = 1);
228 void*
add(
const void* data =
nullptr,
size_t itemCount = 1)
266 return add(
object.structSize);
290 for(
unsigned i = 0; i <
count; ++i) {
An array of fixed-sized items.
Definition: Pool.h:222
void dispose()
Clear and mark this array as 'not in use' so it can be re-used.
Definition: Pool.h:238
void * insert(unsigned index, const void *data=nullptr, size_t itemCount=1)
void * add(const void *data=nullptr, size_t itemCount=1)
Definition: Pool.h:228
bool remove(unsigned index)
This pool stores array data.
Definition: Pool.h:251
ArrayId add(const PropertyInfo &prop)
Definition: Pool.h:269
ArrayPool()
Definition: Pool.h:253
~ArrayPool()
Definition: Pool.h:259
ArrayId add(const ObjectInfo &object)
Definition: Pool.h:264
const ArrayData & operator[](ArrayId id) const
Definition: Pool.h:279
size_t usage() const
Definition: Pool.h:286
ArrayPool(const ArrayPool &other)
ArrayData & operator[](ArrayId id)
Definition: Pool.h:274
Base allocator, designed for good reallocation performance and low RAM footprint.
Definition: Pool.h:30
uint16_t count
Definition: Pool.h:107
size_t getCount() const
Definition: Pool.h:46
PoolData(const PoolData &other)
Definition: Pool.h:37
bool ensureCapacity(size_t capacity)
void * allocate(size_t itemCount)
void * getItemPtr(unsigned index)
Definition: Pool.h:94
void * buffer
Definition: Pool.h:106
PoolData(PoolData &&other)
PoolData & operator=(const PoolData &other)
uint8_t space
Definition: Pool.h:108
void clear()
Definition: Pool.h:76
size_t getCapacity() const
Definition: Pool.h:51
size_t usage() const
Definition: Pool.h:85
const void * operator[](unsigned index) const
Definition: Pool.h:71
PoolData(size_t itemSize)
Definition: Pool.h:32
size_t getItemSize(size_t count) const
Definition: Pool.h:61
void deallocate(size_t itemCount)
void * operator[](unsigned index)
Definition: Pool.h:66
uint8_t itemSize
Definition: Pool.h:109
size_t getItemSize() const
Definition: Pool.h:56
const void * getItemPtr(unsigned index) const
Definition: Pool.h:100
Pool for string data.
Definition: Pool.h:176
StringPool()
Definition: Pool.h:178
const char * getBuffer() const
Definition: Pool.h:206
~StringPool()
Definition: Pool.h:182
StringId add(const CountedString &string)
StringId find(const CountedString &string) const
Search for a string.
CountedString operator[](StringId ref) const
Definition: Pool.h:200
StringId findOrAdd(const CountedString &string)
Definition: Pool.h:195
The String class.
Definition: WString.h:133
uint16_t StringId
Defines contained string data using index into string pool.
Definition: PropertyInfo.h:60
Identifies array storage within array pool.
Definition: PropertyData.h:31
Used by StringPool.
Definition: Pool.h:115
CountedString(const char *value, uint16_t length)
Definition: Pool.h:122
bool operator==(const CountedString &other) const
Definition: Pool.h:130
uint16_t length
Definition: Pool.h:118
CountedString(const String &s)
Definition: Pool.h:126
const char * value
Definition: Pool.h:117
uint16_t getStorageSize() const
Get buffer size required to store this string.
Definition: Pool.h:148
Definition: ObjectInfo.h:38
Property metadata.
Definition: PropertyInfo.h:112
uint8_t getSize() const
Get number of bytes required to store this property value within a structure.
Definition: PropertyInfo.h:172