fawkes::BlackBoardSharedMemoryHeader Class Reference

BlackBoard Shared Memory Header. More...

#include <blackboard/shmem/header.h>

Inheritance diagram for fawkes::BlackBoardSharedMemoryHeader:
Inheritance graph
[legend]

List of all members.

Classes

struct  BlackBoardSharedMemoryHeaderData
 This struct determines the header in the shared memory segment.

Public Member Functions

 BlackBoardSharedMemoryHeader (unsigned int version)
 Constructor.
 BlackBoardSharedMemoryHeader (size_t data_size, unsigned int version)
 Constructor.
 BlackBoardSharedMemoryHeader (const BlackBoardSharedMemoryHeader *h)
 Copy constructor.
virtual ~BlackBoardSharedMemoryHeader ()
 Destructor.
void set_shared_memory (SharedMemory *shmem)
 Set SharedMemory instance.
virtual bool matches (void *memptr)
 Check if the given shared memory segment is a Fawkes BB segment.
virtual size_t size ()
 Get the size of the header data.
virtual void initialize (void *memptr)
 Initialize shared memory segment This copies basic management header data into the shared memory segment.
virtual void set (void *memptr)
 Set data of this header Sets the internal pointer to the shared memory header data to the data retrieved from the shared memory segment.
virtual void reset ()
 Reset information previously set with set().
virtual size_t data_size ()
 Data segment size.
virtual SharedMemoryHeaderclone () const
 Clone this shared memory header.
virtual bool operator== (const fawkes::SharedMemoryHeader &s) const
 Check for equality of headers.
chunk_list_tfree_list_head ()
 Get the head of the free chunks list.
chunk_list_talloc_list_head ()
 Get the head of the allocated chunks list.
void set_free_list_head (chunk_list_t *flh)
 Set the head of the free chunks list.
void set_alloc_list_head (chunk_list_t *alh)
 Set the head of the allocated chunks list.
unsigned int version () const
 Get BlackBoard version.

Detailed Description

BlackBoard Shared Memory Header.

This class is used identify BlackBoard shared memory headers and to interact with the management data in the shared memory segment. The basic options stored in the header is a version identifier and pointers to the list heads of the free and allocated chunk lists.

Author:
Tim Niemueller
See also:
SharedMemoryHeader

Definition at line 34 of file header.h.


Constructor & Destructor Documentation

fawkes::BlackBoardSharedMemoryHeader::BlackBoardSharedMemoryHeader ( unsigned int  version  ) 

Constructor.

Parameters:
version The BB version to store in the shared memory segment to prevent conflicts with older software.

Definition at line 62 of file header.cpp.

Referenced by clone().

fawkes::BlackBoardSharedMemoryHeader::BlackBoardSharedMemoryHeader ( size_t  data_size,
unsigned int  version 
)

Constructor.

Parameters:
data_size the size of the shared memory segment without the header that should be allocated.
version The BB version to store in the shared memory segment to prevent conflicts with older software.

Definition at line 49 of file header.cpp.

fawkes::BlackBoardSharedMemoryHeader::BlackBoardSharedMemoryHeader ( const BlackBoardSharedMemoryHeader h  ) 

Copy constructor.

Parameters:
h header to copy

Definition at line 73 of file header.cpp.

fawkes::BlackBoardSharedMemoryHeader::~BlackBoardSharedMemoryHeader (  )  [virtual]

Destructor.

Definition at line 94 of file header.cpp.


Member Function Documentation

chunk_list_t * fawkes::BlackBoardSharedMemoryHeader::alloc_list_head (  ) 
SharedMemoryHeader * fawkes::BlackBoardSharedMemoryHeader::clone (  )  const [virtual]

Clone this shared memory header.

This method shall return a copied instance of this SharedMemoryHeader derivate. It should act the same way as the current instance.

Returns:
Clone instance. Remember to delete the instance.

Implements fawkes::SharedMemoryHeader.

Definition at line 101 of file header.cpp.

References BlackBoardSharedMemoryHeader().

size_t fawkes::BlackBoardSharedMemoryHeader::data_size (  )  [virtual]

Data segment size.

Returns:
size of the data segment without header

Implements fawkes::SharedMemoryHeader.

Definition at line 190 of file header.cpp.

chunk_list_t * fawkes::BlackBoardSharedMemoryHeader::free_list_head (  ) 
void fawkes::BlackBoardSharedMemoryHeader::initialize ( void *  memptr  )  [virtual]

Initialize shared memory segment This copies basic management header data into the shared memory segment.

Basically sets the version and list heads to NULL

Parameters:
memptr pointer to the memory

Implements fawkes::SharedMemoryHeader.

Definition at line 157 of file header.cpp.

bool fawkes::BlackBoardSharedMemoryHeader::matches ( void *  memptr  )  [virtual]

Check if the given shared memory segment is a Fawkes BB segment.

Parameters:
memptr Ptr to the segment
Returns:
true if the version matches, false otherwise

Implements fawkes::SharedMemoryHeader.

Definition at line 112 of file header.cpp.

bool fawkes::BlackBoardSharedMemoryHeader::operator== ( const fawkes::SharedMemoryHeader s  )  const [virtual]

Check for equality of headers.

First checks if passed SharedMemoryHeader is an instance of BlackBoardSharedMemoryHeader. If not returns false, otherwise it compares version, data size and data pointer. If all match returns true, false if any of them differs.

Parameters:
s shared memory header to compare to
Returns:
true if the two instances identify the very same shared memory segments, false otherwise

Definition at line 129 of file header.cpp.

void fawkes::BlackBoardSharedMemoryHeader::reset ( void   )  [virtual]

Reset information previously set with set().

This shall restore the state the header had before set() was called. This is used for instance in the SharedMemoryLister after info about one segment has been printed.

Implements fawkes::SharedMemoryHeader.

Definition at line 180 of file header.cpp.

void fawkes::BlackBoardSharedMemoryHeader::set ( void *  memptr  )  [virtual]

Set data of this header Sets the internal pointer to the shared memory header data to the data retrieved from the shared memory segment.

Parameters:
memptr pointer to the memory

Implements fawkes::SharedMemoryHeader.

Definition at line 173 of file header.cpp.

void fawkes::BlackBoardSharedMemoryHeader::set_alloc_list_head ( chunk_list_t alh  ) 

Set the head of the allocated chunks list.

Parameters:
alh pointer to the new allocated list head, must be a pointer to the local shared memory segment. Will be transformed to a shared memory address.

Definition at line 234 of file header.cpp.

References fawkes::SharedMemory::addr().

Referenced by fawkes::BlackBoardMemoryManager::BlackBoardMemoryManager(), and fawkes::BlackBoardMemoryManager::free().

void fawkes::BlackBoardSharedMemoryHeader::set_free_list_head ( chunk_list_t flh  ) 

Set the head of the free chunks list.

Parameters:
flh pointer to the new free list head, must be a pointer to the local shared memory segment. Will be transformed to a shared memory address.

Definition at line 223 of file header.cpp.

References fawkes::SharedMemory::addr().

Referenced by fawkes::BlackBoardMemoryManager::BlackBoardMemoryManager(), and fawkes::BlackBoardMemoryManager::free().

void fawkes::BlackBoardSharedMemoryHeader::set_shared_memory ( SharedMemory shmem  ) 

Set SharedMemory instance.

This is needed for address conversion and must be set right after the constructor call of SharedMemory!

Parameters:
shmem SharedMemory segment used for this header

Definition at line 87 of file header.cpp.

Referenced by fawkes::BlackBoardMemoryManager::BlackBoardMemoryManager().

size_t fawkes::BlackBoardSharedMemoryHeader::size (  )  [virtual]

Get the size of the header data.

Returns:
size of the header data

Implements fawkes::SharedMemoryHeader.

Definition at line 145 of file header.cpp.

unsigned int fawkes::BlackBoardSharedMemoryHeader::version (  )  const

Get BlackBoard version.

Returns:
BlackBoard version

Definition at line 244 of file header.cpp.

Referenced by fawkes::BlackBoardMemoryManager::version().


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

Generated on 1 Mar 2011 for Fawkes API by  doxygen 1.6.1