fesa-core  4.2.0
fesa::HeapRollingBufferMuxDataManager Class Reference

This class extends the RollingDataManager class to deal with heap memory. More...

#include <HeapRollingBufferMuxDataManager.h>

Inheritance diagram for fesa::HeapRollingBufferMuxDataManager:
fesa::RollingBufferMuxDataManager fesa::MultiplexingDataManager fesa::AbstractMultiplexingDataManager

Public Member Functions

 HeapRollingBufferMuxDataManager (int32_t depth)
 Constructor. More...
 
std::size_t computeMemorySize ()
 This method returns the number of bytes which are necessary to store the date of the class. More...
 
void mapMemory (char *address, bool first)
 
- Public Member Functions inherited from fesa::RollingBufferMuxDataManager
 RollingBufferMuxDataManager (int32_t depth)
 Constructor. More...
 
int32_t findCycleIdBackward (int32_t cycleId)
 This method finds the latest occurrence of the cycleId passed by parameter. The method looks up the ID going backwards from the currentPosition. More...
 
int32_t findCycleStampBackward (timestamp_ns cycleStamp)
 This method finds the latest occurrence of the cycleStamp passed by parameter. The method looks up the stamp going backwards from the currentPosition. More...
 
int32_t findClosestTimeStamp (timestamp_ns timestamp)
 
int32_t findClosestCycleId (int32_t cycleId, timestamp_ns timestamp)
 
int64_t getCycleStamp (int32_t position)
 
int32_t nextPosition (int64_t timeStamp, int32_t cycleId)
 this method moves the currentIndex to the next slot available in the currentCycleIds vector
 
int32_t getCurrentPosition ()
 
int32_t getDepth ()
 This method returns the depth of the data. More...
 
int32_t getCurrentCycleId ()
 This method returns the cycle ID of the current slot. More...
 
int32_t getNumberStoredValues ()
 This method returns the number of stored values in the rolling buffer. More...
 
- Public Member Functions inherited from fesa::MultiplexingDataManager
 MultiplexingDataManager ()
 Constructor.
 
virtual ~MultiplexingDataManager ()
 Destructor.
 
- Public Member Functions inherited from fesa::AbstractMultiplexingDataManager
virtual ~AbstractMultiplexingDataManager ()
 Destructor.
 

Additional Inherited Members

- Protected Attributes inherited from fesa::RollingBufferMuxDataManager
int32_t * currentIdsCol_
 this vector stores the used cycle IDs
 
int64_t * currentCycleStampsCol_
 this vector stores the used cycle stamps
 
int32_t depth_
 contains the number of slots to store the cycleIds
 
int32_t * currentId_
 the ID of the ongoing cycle
 
int32_t * currentPosition_
 this element points to the next slot available in the currentIdesCol_ vector
 
int32_t * numberStoredValues_
 Number of stored values in the rolling buffer.
 
- Protected Attributes inherited from fesa::MultiplexingDataManager
int32_t * currentCycleId_
 Current cycleID.
 
Mutexmutex_
 mutex for all class member variables
 
int32_t * currentSlot_
 The slot where the data of the current cycle is stored.
 

Detailed Description

This class extends the RollingDataManager class to deal with heap memory.

Constructor & Destructor Documentation

fesa::HeapRollingBufferMuxDataManager::HeapRollingBufferMuxDataManager ( int32_t  depth)

Constructor.

Parameters
depththe number of data-elements which need to be handled

Member Function Documentation

std::size_t fesa::HeapRollingBufferMuxDataManager::computeMemorySize ( )
virtual

This method returns the number of bytes which are necessary to store the date of the class.

Returns
the number of bytes computed

Implements fesa::RollingBufferMuxDataManager.

void fesa::HeapRollingBufferMuxDataManager::mapMemory ( char *  address,
bool  first 
)
virtual

Maps shared fields to the memory pointed to by pAddr.

Parameters
addressaddress where to map shared fields
firsttrue if this is the first process to map the shared fields

Implements fesa::RollingBufferMuxDataManager.


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