UCommon
Public Member Functions
ucommon::array_reuse< T > Class Template Reference

An array of reusable types. More...

#include <vector.h>

Inheritance diagram for ucommon::array_reuse< T >:
Inheritance graph
[legend]
Collaboration diagram for ucommon::array_reuse< T >:
Collaboration graph
[legend]

Public Member Functions

 array_reuse (unsigned count)
 Create private heap of reusable objects of specified type. More...
 
T * create (void)
 Create a typed object from the heap. More...
 
T * create (timeout_t timeout)
 Create a typed object from the heap. More...
 
T * get (void)
 Get a typed object from the heap. More...
 
T * get (timeout_t timeout)
 Get a typed object from the heap. More...
 
 operator bool () const
 Test if typed objects available in heap or re-use list. More...
 
 operator T * ()
 Get a typed object from the heap by type casting reference. More...
 
bool operator! () const
 Test if the entire heap has been allocated. More...
 
T * operator* ()
 Get a typed object from the heap by pointer reference. More...
 
void release (T *object)
 Release (return) a typed object back to the heap for re-use. More...
 
T * request (void)
 Request immediately next available typed object from the heap. More...
 

Additional Inherited Members

- Protected Member Functions inherited from ucommon::ArrayReuse
 ~ArrayReuse ()
 Destroy reusable private heap array.
 
 ArrayReuse (size_t objsize, unsigned c)
 
bool avail (void)
 
ReusableObjectget (timeout_t timeout)
 
ReusableObjectget (void)
 
ReusableObjectrequest (void)
 

Detailed Description

template<class T>
class ucommon::array_reuse< T >

An array of reusable types.

A pool of typed objects is created which can be allocated as needed. Deallocated typed objects are returned to the pool so they can be reallocated later. This is a private fixed size heap.

Author
David Sugar dyfet.nosp@m.@gnu.nosp@m.telep.nosp@m.hony.nosp@m..org

Definition at line 490 of file vector.h.

Constructor & Destructor Documentation

template<class T >
ucommon::array_reuse< T >::array_reuse ( unsigned  count)
inline

Create private heap of reusable objects of specified type.

Parameters
countof objects of specified type to allocate.

Definition at line 497 of file vector.h.

Member Function Documentation

template<class T >
T* ucommon::array_reuse< T >::create ( void  )
inline

Create a typed object from the heap.

This function blocks when the heap is empty until an object is returned to the heap.

Returns
typed object pointer from heap.

Definition at line 534 of file vector.h.

template<class T >
T* ucommon::array_reuse< T >::create ( timeout_t  timeout)
inline

Create a typed object from the heap.

This function blocks until the the heap has an object to return or the timer has expired.

Parameters
timeoutto wait for heap in milliseconds.
Returns
typed object pointer from heap or NULL if timeout.

Definition at line 552 of file vector.h.

template<class T >
T* ucommon::array_reuse< T >::get ( void  )
inline

Get a typed object from the heap.

This function blocks when the heap is empty until an object is returned to the heap.

Returns
typed object pointer from heap.

Definition at line 526 of file vector.h.

template<class T >
T* ucommon::array_reuse< T >::get ( timeout_t  timeout)
inline

Get a typed object from the heap.

This function blocks until the the heap has an object to return or the timer has expired.

Parameters
timeoutto wait for heap in milliseconds.
Returns
typed object pointer from heap or NULL if timeout.

Definition at line 543 of file vector.h.

template<class T >
ucommon::array_reuse< T >::operator bool ( ) const
inline

Test if typed objects available in heap or re-use list.

Returns
true if objects still are available.

Definition at line 504 of file vector.h.

template<class T >
ucommon::array_reuse< T >::operator T * ( )
inline

Get a typed object from the heap by type casting reference.

This function blocks while the heap is empty.

Returns
typed object pointer from heap.

Definition at line 567 of file vector.h.

template<class T >
bool ucommon::array_reuse< T >::operator! ( ) const
inline

Test if the entire heap has been allocated.

Returns
true if no objects are available.

Definition at line 511 of file vector.h.

template<class T >
T* ucommon::array_reuse< T >::operator* ( )
inline

Get a typed object from the heap by pointer reference.

This function blocks while the heap is empty.

Returns
typed object pointer from heap.

Definition at line 575 of file vector.h.

template<class T >
void ucommon::array_reuse< T >::release ( T *  object)
inline

Release (return) a typed object back to the heap for re-use.

Parameters
objectto return.

Definition at line 559 of file vector.h.

Here is the call graph for this function:

template<class T >
T* ucommon::array_reuse< T >::request ( void  )
inline

Request immediately next available typed object from the heap.

Returns
typed object pointer or NULL if heap is empty.

Definition at line 518 of file vector.h.


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