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 (char *name, unsigned number)
 Construct mapped reuse array of typed objects.
 operator bool ()
 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! ()
 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 (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 (char *fname, unsigned count)
 MappedReuse (size_t osize)
- Protected Member Functions inherited from ucommon::MappedMemory
void copy (size_t offset, void *buffer, size_t size)
 Copy memory from specific offset within the mapped memory segment.
caddr_t getStart (void)
 Get starting address of mapped segment.
size_t len (void)
 Get size of mapped segment.
 MappedMemory (char *name, size_t size)
 Construct a read/write access mapped shared segment of memory of a known size.
 MappedMemory (char *name)
 Provide read-only mapped access to an existing named shared memory segment.
void * offset (size_t offset)
 Get memory from a specific offset within the mapped memory segment.
void release (void)
 Unmap memory segment.
void * sbrk (size_t size)
 Extend size of managed heap on shared memory segment.
virtual ~MappedMemory ()
 Unmap memory segment.
void create (char *name, size_t size=(size_t) 0)
 Supporting function to construct a new or access an existing shared memory segment.
virtual void fault (void)
 Handler to invoke in derived class when accessing outside the shared memory segment boundary.

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 ( 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 ( )
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! ( )
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: