31 #define __ETL_IN_IPOOL_H__
36 #ifndef ETL_THROW_EXCEPTIONS
68 #ifdef ETL_THROW_EXCEPTIONS
99 typename std::iterator_traits<T*>::difference_type distance = p_object - p_buffer;
102 next_free =
static_cast<size_t>(distance);
108 #ifdef ETL_THROW_EXCEPTIONS
134 typename std::iterator_traits<T*>::difference_type distance = p_object - p_buffer;
137 return ((distance >= 0) && (distance <
static_cast<typename std::iterator_traits<T*>::difference_type
>(
MAX_SIZE)));
148 in_use_flags(in_use_flags)
virtual ibitset & set(size_t position, bool value=true)=0
Set the bit at the position.
void release(const T &object)
Definition: ipool.h:83
Definition: pool_base.h:63
Definition: pool_base.h:89
ipool(T *p_buffer, ibitset &in_use_flags, size_t size)
Constructor.
Definition: ipool.h:145
const size_t MAX_SIZE
The maximum number of objects that can be allocated.
Definition: pool_base.h:124
Definition: pool_base.h:76
Definition: algorithm.h:43
size_t items_allocated
The number of items allocated.
Definition: pool_base.h:123
T * allocate()
Definition: ipool.h:56
virtual size_t find_first(bool state) const =0
static void error(const exception &e)
Definition: error_handler.cpp:50
bool is_in_pool(const T *const p_object) const
Definition: ipool.h:131
size_t next_free
The position of the next free item in the pool.
Definition: pool_base.h:122
bool is_in_pool(const T &object) const
Definition: ipool.h:121
void release(const T *const p_object)
Definition: ipool.h:94
virtual ibitset & reset(size_t position)=0
Reset the bit at the position.