ucommon::mapped_array< T > Class Template Reference

Template class to map typed vector into shared memory. More...

#include <mapped.h>

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

Public Member Functions

void * addLock (void)
 Add mapped space while holding lock for one object.
void initialize (void)
 Initialize typed data in mapped array.
 mapped_array (const char *name, unsigned number)
 Construct mapped vector array of typed objects.
unsigned max (void)
 Get member size of typed objects that can be held in mapped vector.
T * operator() (void)
 Allocate mapped space for one object.
T * operator() (unsigned member)
 Get typed pointer to member object of vector in mapped segment.
T & operator[] (unsigned member)
 Reference typed object of vector in mapped segment.

Protected Member Functions

void create (const char *fn, unsigned members)

Detailed Description

template<class T>
class ucommon::mapped_array< T >

Template class to map typed vector into shared memory.

This is used to construct a typed read/write vector of objects that are held in a named shared memory segment.

Author:
David Sugar <dyfet@gnutelephony.org>

Definition at line 277 of file mapped.h.


Constructor & Destructor Documentation

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

Construct mapped vector 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. Member objects are linearly allocated from the shared memory segment, or may simply be directly accessed by offset.

Parameters:
name of mapped segment to construct.
number of objects in the mapped vector.

Definition at line 294 of file mapped.h.


Member Function Documentation

template<class T >
void* ucommon::mapped_array< T >::addLock ( void   )  [inline]

Add mapped space while holding lock for one object.

Returns:
address of object.

Definition at line 308 of file mapped.h.

template<class T >
void ucommon::mapped_array< T >::initialize ( void   )  [inline]

Initialize typed data in mapped array.

Assumes default constructor for type.

Definition at line 301 of file mapped.h.

template<class T >
unsigned ucommon::mapped_array< T >::max ( void   )  [inline]

Get member size of typed objects that can be held in mapped vector.

Returns:
members mapped in segment.

Definition at line 338 of file mapped.h.

template<class T >
T* ucommon::mapped_array< T >::operator() ( void   )  [inline]

Allocate mapped space for one object.

Returns:
address of object.

Definition at line 323 of file mapped.h.

template<class T >
T* ucommon::mapped_array< T >::operator() ( unsigned  member  )  [inline]

Get typed pointer to member object of vector in mapped segment.

Parameters:
member to access.
Returns:
typed pointer or NULL if past end of array.

Definition at line 316 of file mapped.h.

template<class T >
T& ucommon::mapped_array< T >::operator[] ( unsigned  member  )  [inline]

Reference typed object of vector in mapped segment.

Parameters:
member to access.
Returns:
typed reference.

Definition at line 331 of file mapped.h.


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

Generated on 30 Jul 2013 for UCommon by  doxygen 1.6.1