96 assert(index <
count);
102 assert(index <
count);
138 explicit operator bool()
const
200 return find(
string) ?:
add(
string);
205 unsigned offset = ref - 1;
211 return static_cast<const char*
>(
buffer);
229 void*
insert(
unsigned index,
const void* data =
nullptr,
size_t itemCount = 1);
231 void*
add(
const void* data =
nullptr,
size_t itemCount = 1)
269 return add(
object.structSize);
293 for(
unsigned i = 0; i <
count; ++i) {
An array of fixed-sized items.
Definition: Pool.h:225
void dispose()
Clear and mark this array as 'not in use' so it can be re-used.
Definition: Pool.h:241
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:231
bool remove(unsigned index)
This pool stores array data.
Definition: Pool.h:254
ArrayId add(const PropertyInfo &prop)
Definition: Pool.h:272
ArrayPool()
Definition: Pool.h:256
~ArrayPool()
Definition: Pool.h:262
ArrayId add(const ObjectInfo &object)
Definition: Pool.h:267
const ArrayData & operator[](ArrayId id) const
Definition: Pool.h:282
size_t usage() const
Definition: Pool.h:289
ArrayPool(const ArrayPool &other)
ArrayData & operator[](ArrayId id)
Definition: Pool.h:277
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:179
StringPool()
Definition: Pool.h:181
const char * getBuffer() const
Definition: Pool.h:209
~StringPool()
Definition: Pool.h:185
StringId add(const CountedString &string)
StringId find(const CountedString &string) const
Search for a string.
CountedString operator[](StringId ref) const
Definition: Pool.h:203
StringId findOrAdd(const CountedString &string)
Definition: Pool.h:198
The String class.
Definition: WString.h:133
uint16_t StringId
Defines contained string data using index into string pool.
Definition: PropertyInfo.h:59
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:151
Definition: ObjectInfo.h:38
Property metadata.
Definition: PropertyInfo.h:126
uint8_t getSize() const
Get number of bytes required to store this property value within a structure.
Definition: PropertyInfo.h:177