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

Template class to map typed reusable objects into shared memory heap. More...

#include <mapped.h>

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

Public Member Functions

T * get (void)
 Request a typed reusable object from the free list or mapped space.
T * getLocked (void)
 Used to get a typed object from the reuse pool when the mutex lock is already held.
T * getTimed (timeout_t timeout)
 Request a typed reusable object from the free list or mapped space.
void initialize (void)
 Initialize typed data in mapped array.
 mapped_reuse (const char *name, unsigned number)
 Construct mapped reuse array of typed objects.
 operator bool () const
 Check whether there are typed objects available to be allocated.
 operator T * ()
 Request a typed reusable object from the free list or mapped space.
bool operator! () const
 Check whether there are typed objects available to be allocated.
T * operator* ()
 Request a typed reusable object from the free list or mapped space by pointer reference.
T * pos (size_t member)
 Get typed object from a specific member offset within the mapped segment.
void release (T *object)
 Used to release a typed object back to the reuse typed object pool.
void removeLocked (T *object)
 Used to return a typed object to the reuse pool when the mutex lock is already held.
T * request (void)
 Request a typed reusable object from the free list or mapped space.
- Public Member Functions inherited from ucommon::MappedReuse
bool avail (void)
 Check whether there are objects available to be allocated.
 MappedReuse (const char *name, size_t size, unsigned count)
 Construct a named memory segment for use with managed fixed size reusable objects.
void removeLocked (ReusableObject *object)
 Used to return an object to the reuse pool when the mutex lock is already held.

Additional Inherited Members

- Protected Member Functions inherited from ucommon::MappedReuse
void create (const char *fname, unsigned count)
 MappedReuse (size_t osize)
- Static Protected Member Functions inherited from ucommon::MappedMemory
static void disable (void)
 An API that allows "disabling" of publishing shared memory maps.
static void remove (const char *name)
 Destroy a previously existing memory segment under the specified name.

Detailed Description

template<class T>
class ucommon::mapped_reuse< T >

Template class to map typed reusable objects into shared memory heap.

This is used to construct a read/write heap of objects that are held in a named shared memory segment. Member objects are allocated from a reusable heap but are stored in the shared memory segment as a vector.

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

Definition at line 344 of file mapped.h.

Constructor & Destructor Documentation

template<class T >
ucommon::mapped_reuse< T >::mapped_reuse ( const char *  name,
unsigned  number 
)
inline

Construct mapped reuse array of typed objects.

This is constructed for read/write access. mapped_view is used in all cases for read-only access to mapped data.

Parameters
nameof mapped segment to construct.
numberof objects in the mapped vector.

Definition at line 358 of file mapped.h.

Member Function Documentation

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

Request a typed reusable object from the free list or mapped space.

This method blocks until an object becomes available.

Returns
free typed object.

Reimplemented from ucommon::MappedReuse.

Definition at line 411 of file mapped.h.

template<class T >
T* ucommon::mapped_reuse< T >::getLocked ( void  )
inline

Used to get a typed object from the reuse pool when the mutex lock is already held.

Returns
typed object from pool or NULL if exhausted.

Reimplemented from ucommon::MappedReuse.

Definition at line 445 of file mapped.h.

template<class T >
T* ucommon::mapped_reuse< T >::getTimed ( timeout_t  timeout)
inline

Request a typed reusable object from the free list or mapped space.

This method blocks until an object becomes available from another thread or the timeout expires.

Parameters
timeoutin milliseconds.
Returns
free typed object.

Reimplemented from ucommon::MappedReuse.

Definition at line 421 of file mapped.h.

template<class T >
void ucommon::mapped_reuse< T >::initialize ( void  )
inline

Initialize typed data in mapped array.

Assumes default constructor for type.

Definition at line 365 of file mapped.h.

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

Check whether there are typed objects available to be allocated.

Returns
true if objects are available.

Reimplemented from ucommon::MappedMemory.

Definition at line 372 of file mapped.h.

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

Request a typed reusable object from the free list or mapped space.

This method blocks until an object becomes available.

Returns
free object.

Definition at line 387 of file mapped.h.

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

Check whether there are typed objects available to be allocated.

Returns
true if no more typed objects are available.

Reimplemented from ucommon::MappedMemory.

Definition at line 379 of file mapped.h.

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

Request a typed reusable object from the free list or mapped space by pointer reference.

This method blocks until an object becomes available.

Returns
free object.

Definition at line 395 of file mapped.h.

template<class T >
T* ucommon::mapped_reuse< T >::pos ( size_t  member)
inline

Get typed object from a specific member offset within the mapped segment.

Parameters
memberoffset from start of segment. Will fault if past end.
Returns
typed object pointer.

Definition at line 403 of file mapped.h.

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

Used to release a typed object back to the reuse typed object pool.

Parameters
objectbeing released.

Definition at line 452 of file mapped.h.

Here is the call graph for this function:

template<class T >
void ucommon::mapped_reuse< T >::removeLocked ( T *  object)
inline

Used to return a typed object to the reuse pool when the mutex lock is already held.

Parameters
objectbeing returned.

Definition at line 437 of file mapped.h.

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

Request a typed reusable object from the free list or mapped space.

This method does not block or wait.

Returns
free typed object if available or NULL.

Reimplemented from ucommon::MappedReuse.

Definition at line 429 of file mapped.h.


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