Fawkes API  Fawkes Development Version
fawkes::BlackBoardSharedMemoryHeader Class Reference

BlackBoard Shared Memory Header. More...

#include <>>

Inheritance diagram for fawkes::BlackBoardSharedMemoryHeader:

Public Member Functions

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

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

◆ BlackBoardSharedMemoryHeader() [1/3]

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

Constructor.

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

Definition at line 62 of file header.cpp.

References version().

Referenced by clone().

◆ BlackBoardSharedMemoryHeader() [2/3]

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

Constructor.

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

Definition at line 49 of file header.cpp.

References data_size(), and version().

◆ BlackBoardSharedMemoryHeader() [3/3]

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

Copy constructor.

Parameters
hheader to copy

Definition at line 73 of file header.cpp.

◆ ~BlackBoardSharedMemoryHeader()

fawkes::BlackBoardSharedMemoryHeader::~BlackBoardSharedMemoryHeader ( )
virtual

Destructor.

Definition at line 94 of file header.cpp.

Member Function Documentation

◆ alloc_list_head()

◆ clone()

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().

◆ data_size()

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.

Referenced by BlackBoardSharedMemoryHeader().

◆ free_list_head()

◆ initialize()

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
memptrpointer to the memory

Implements fawkes::SharedMemoryHeader.

Definition at line 157 of file header.cpp.

◆ matches()

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

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

Parameters
memptrPtr to the segment
Returns
true if the version matches, false otherwise

Implements fawkes::SharedMemoryHeader.

Definition at line 112 of file header.cpp.

◆ operator==()

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
sshared memory header to compare to
Returns
true if the two instances identify the very same shared memory segments, false otherwise

Implements fawkes::SharedMemoryHeader.

Definition at line 129 of file header.cpp.

◆ reset()

void fawkes::BlackBoardSharedMemoryHeader::reset ( )
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.

◆ set()

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
memptrpointer to the memory

Implements fawkes::SharedMemoryHeader.

Definition at line 173 of file header.cpp.

◆ set_alloc_list_head()

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

Set the head of the allocated chunks list.

Parameters
alhpointer 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(), fawkes::BlackBoardMemoryManager::free(), and fawkes::BlackBoardMemoryManager::~BlackBoardMemoryManager().

◆ set_free_list_head()

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

Set the head of the free chunks list.

Parameters
flhpointer 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(), fawkes::BlackBoardMemoryManager::free(), and fawkes::BlackBoardMemoryManager::~BlackBoardMemoryManager().

◆ set_shared_memory()

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
shmemSharedMemory segment used for this header

Definition at line 87 of file header.cpp.

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

◆ size()

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.

◆ version()

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

Get BlackBoard version.

Returns
BlackBoard version

Definition at line 244 of file header.cpp.

Referenced by BlackBoardSharedMemoryHeader(), and fawkes::BlackBoardMemoryManager::version().


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