Fawkes API
Fawkes Development Version
|
BlackBoard Shared Memory Header. More...
#include <>>
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 SharedMemoryHeader * | clone () const |
Clone this shared memory header. More... | |
virtual bool | operator== (const fawkes::SharedMemoryHeader &s) const |
Check for equality of headers. More... | |
chunk_list_t * | free_list_head () |
Get the head of the free chunks list. More... | |
chunk_list_t * | alloc_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... | |
![]() | |
virtual | ~SharedMemoryHeader () |
Virtual destructor. More... | |
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.
fawkes::BlackBoardSharedMemoryHeader::BlackBoardSharedMemoryHeader | ( | unsigned int | version | ) |
Constructor.
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.
References version().
Referenced by clone().
fawkes::BlackBoardSharedMemoryHeader::BlackBoardSharedMemoryHeader | ( | size_t | data_size, |
unsigned int | version | ||
) |
Constructor.
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.
References data_size(), and version().
fawkes::BlackBoardSharedMemoryHeader::BlackBoardSharedMemoryHeader | ( | const BlackBoardSharedMemoryHeader * | h | ) |
|
virtual |
Destructor.
Definition at line 94 of file header.cpp.
chunk_list_t * fawkes::BlackBoardSharedMemoryHeader::alloc_list_head | ( | ) |
Get the head of the allocated chunks list.
Definition at line 212 of file header.cpp.
References fawkes::SharedMemory::ptr().
Referenced by fawkes::BlackBoardMemoryManager::allocated_size(), fawkes::BlackBoardMemoryManager::begin(), fawkes::BlackBoardMemoryManager::check(), fawkes::BlackBoardMemoryManager::free(), fawkes::BlackBoardMemoryManager::max_allocated_size(), fawkes::BlackBoardMemoryManager::num_allocated_chunks(), fawkes::BlackBoardMemoryManager::overhang_size(), fawkes::BlackBoardMemoryManager::print_allocated_chunks_info(), fawkes::BlackBoardMemoryManager::print_performance_info(), and fawkes::BlackBoardMemoryManager::~BlackBoardMemoryManager().
|
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.
Implements fawkes::SharedMemoryHeader.
Definition at line 101 of file header.cpp.
References BlackBoardSharedMemoryHeader().
|
virtual |
Data segment size.
Implements fawkes::SharedMemoryHeader.
Definition at line 190 of file header.cpp.
Referenced by BlackBoardSharedMemoryHeader().
chunk_list_t * fawkes::BlackBoardSharedMemoryHeader::free_list_head | ( | ) |
Get the head of the free chunks list.
Definition at line 201 of file header.cpp.
References fawkes::SharedMemory::ptr().
Referenced by fawkes::BlackBoardMemoryManager::check(), fawkes::BlackBoardMemoryManager::free(), fawkes::BlackBoardMemoryManager::free_size(), fawkes::BlackBoardMemoryManager::max_free_size(), fawkes::BlackBoardMemoryManager::num_free_chunks(), fawkes::BlackBoardMemoryManager::overhang_size(), fawkes::BlackBoardMemoryManager::print_free_chunks_info(), fawkes::BlackBoardMemoryManager::print_performance_info(), and fawkes::BlackBoardMemoryManager::~BlackBoardMemoryManager().
|
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
memptr | pointer to the memory |
Implements fawkes::SharedMemoryHeader.
Definition at line 157 of file header.cpp.
|
virtual |
Check if the given shared memory segment is a Fawkes BB segment.
memptr | Ptr to the segment |
Implements fawkes::SharedMemoryHeader.
Definition at line 112 of file header.cpp.
|
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.
s | shared memory header to compare to |
Implements fawkes::SharedMemoryHeader.
Definition at line 129 of file header.cpp.
|
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.
|
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.
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.
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(), fawkes::BlackBoardMemoryManager::free(), and fawkes::BlackBoardMemoryManager::~BlackBoardMemoryManager().
void fawkes::BlackBoardSharedMemoryHeader::set_free_list_head | ( | chunk_list_t * | flh | ) |
Set the head of the free chunks list.
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(), fawkes::BlackBoardMemoryManager::free(), and fawkes::BlackBoardMemoryManager::~BlackBoardMemoryManager().
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!
shmem | SharedMemory segment used for this header |
Definition at line 87 of file header.cpp.
Referenced by fawkes::BlackBoardMemoryManager::BlackBoardMemoryManager().
|
virtual |
Get the 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.
Definition at line 244 of file header.cpp.
Referenced by BlackBoardSharedMemoryHeader(), and fawkes::BlackBoardMemoryManager::version().