fesa-core  5.0.1
fesa::RollingBufferMuxManager Class Reference

This class extends the AbstractMultiplexingManager in order to provide a rolling multiplexing manager (explanation of "rolling" see class RollingDataManager) More...

#include <RollingBufferMuxManager.h>

Inheritance diagram for fesa::RollingBufferMuxManager:
fesa::AbstractMultiplexingManager

Public Member Functions

int32_t requireSlot (const MultiplexingContext &context)
 This method returns the next slot in which the value of a field will be stored. More...
 
int32_t getSlotByTimeStamp (int64_t timeStamp)
 
int32_t getClosestSlot (timestamp_ns timestamp)
 
int32_t getClosestSlot (const std::string &cycleName, timestamp_ns timestamp)
 
int32_t getSlotByCycleName (const std::string &cycleName)
 This method the last given cycleName set slot. More...
 
 RollingBufferMuxManager (const std::string &name, CycleDescriptor *timingDescriptor, RollingBufferMuxDataManager *dataManager)
 Constructor. More...
 
int32_t getDepth ()
 This method returns the depth of the multiplexing manager. More...
 
- Public Member Functions inherited from fesa::AbstractMultiplexingManager
const std::string & getTimingDomain () const
 
const CycleDescriptorgetTimingDescriptor () const
 
virtual int32_t getSlot (const MultiplexingContext &context)
 This method returns the slot in which the required value is stored, according to the given multiplexing context.The method is implemented by the concrete multiplexing manager. More...
 
virtual ~AbstractMultiplexingManager ()
 Destructor.
 

Protected Member Functions

AbstractMultiplexingDataManagergetMultiplexingDataManager ()
 This method returns the MultiplexingDataManager. Is is pure virtual in the baseclass, so we have to provide an implementation. More...
 
int32_t getLastSlot (const std::string &cycleName)
 This method returns the slot in which the last value for the virtual accelerator passed by argument was stored. More...
 
int32_t requireSlot (const std::string &cycleName)
 This method returns the next slot in which the value of a field will be stored. More...
 
int32_t getLastSlot (int32_t cycleId)
 This method returns the slot in which the last value for the virtual accelerator passed by argument was stored. More...
 
int32_t requireSlot (int32_t cycleId)
 This method returns the next slot in which the value of a field will be stored. More...
 
- Protected Member Functions inherited from fesa::AbstractMultiplexingManager
const std::string & getName ()
 This method returns the name of the multiplexing manager. More...
 
 AbstractMultiplexingManager (const std::string &name, const CycleDescriptor *timingDescriptor)
 Constructor. More...
 

Additional Inherited Members

- Static Protected Member Functions inherited from fesa::AbstractMultiplexingManager
static std::size_t getMemorySizeToAllocate ()
 This method retrieves the size to be allocated in heap or shared memory, regarding the collection of multiplexing managers. More...
 
static void mapMemory (char *pAddr, bool first)
 
static
AbstractMultiplexingManager
getMultiplexingManager (const std::string &name)
 This method retrieves the desired multiplexing manager. More...
 
- Protected Attributes inherited from fesa::AbstractMultiplexingManager
std::string name_
 mutex that protects conditional variable newMsgCondVar_
 
const CycleDescriptortimingDescriptor_
 a reference to the timing descriptor
 
- Static Protected Attributes inherited from fesa::AbstractMultiplexingManager
static std::map< std::string,
AbstractMultiplexingManager * > 
managersCol_
 a map which contains pointers to all the multiplexing managers on the system
 

Detailed Description

This class extends the AbstractMultiplexingManager in order to provide a rolling multiplexing manager (explanation of "rolling" see class RollingDataManager)

Constructor & Destructor Documentation

fesa::RollingBufferMuxManager::RollingBufferMuxManager ( const std::string &  name,
CycleDescriptor timingDescriptor,
RollingBufferMuxDataManager dataManager 
)

Constructor.

Parameters
nameThe multiplexing criterion is the name of the multiplexing manager
timingDescriptorto describe the used timing system
dataManagerreference to the data manager, which is used to manage the memory access to the data

Member Function Documentation

int32_t fesa::RollingBufferMuxManager::getClosestSlot ( timestamp_ns  timestamp)
virtual

Returns the slot closest to the given timestamp.

Parameters
timestampthe timestamp to look for

Reimplemented from fesa::AbstractMultiplexingManager.

int32_t fesa::RollingBufferMuxManager::getClosestSlot ( const std::string &  cycleName,
timestamp_ns  timestamp 
)
virtual

Returns the slot closest to the given timestamp whose cycle matches cycleName.

Parameters
cycleNamethe name of the cycle to look for
timestampthe timestamp to look for

Reimplemented from fesa::AbstractMultiplexingManager.

int32_t fesa::RollingBufferMuxManager::getDepth ( )
inlinevirtual

This method returns the depth of the multiplexing manager.

Returns
the depth of the multiplexing manager

Reimplemented from fesa::AbstractMultiplexingManager.

int32_t fesa::RollingBufferMuxManager::getLastSlot ( const std::string &  cycleName)
protectedvirtual

This method returns the slot in which the last value for the virtual accelerator passed by argument was stored.

Parameters
cycleIdthe ID of the cycle for the requested slot
Returns
the last slot used by the requested cycle

Implements fesa::AbstractMultiplexingManager.

int32_t fesa::RollingBufferMuxManager::getLastSlot ( int32_t  cycleId)
protectedvirtual

This method returns the slot in which the last value for the virtual accelerator passed by argument was stored.

Parameters
cycleIdthe ID of the cycle for the requested slot
Returns
the last slot used by the requested cycle

Implements fesa::AbstractMultiplexingManager.

AbstractMultiplexingDataManager * fesa::RollingBufferMuxManager::getMultiplexingDataManager ( )
inlineprotectedvirtual

This method returns the MultiplexingDataManager. Is is pure virtual in the baseclass, so we have to provide an implementation.

Returns
pointer to the DataManager

Implements fesa::AbstractMultiplexingManager.

int32_t fesa::RollingBufferMuxManager::getSlotByCycleName ( const std::string &  cycleName)
virtual

This method the last given cycleName set slot.

Returns
The last cyclename slot.

Reimplemented from fesa::AbstractMultiplexingManager.

int32_t fesa::RollingBufferMuxManager::getSlotByTimeStamp ( int64_t  timeStamp)
virtual

Returns the slot corresponding to timeStamp, or INVALID_SLOT if this feature is not supported by the concrete MultiplexingManager.

Exceptions
FesaExceptionif no slot is assigned timeStamp.

Reimplemented from fesa::AbstractMultiplexingManager.

int32_t fesa::RollingBufferMuxManager::requireSlot ( const MultiplexingContext context)
virtual

This method returns the next slot in which the value of a field will be stored.

Parameters
contextthe multiplexing context for which a slot is requested
Returns
the slot where the data can be stored

Implements fesa::AbstractMultiplexingManager.

int32_t fesa::RollingBufferMuxManager::requireSlot ( const std::string &  cycleName)
protectedvirtual

This method returns the next slot in which the value of a field will be stored.

Parameters
cycleIdthe ID of the cycle for the requested slot
Returns
the slot where data can be stored

Implements fesa::AbstractMultiplexingManager.

int32_t fesa::RollingBufferMuxManager::requireSlot ( int32_t  cycleId)
protectedvirtual

This method returns the next slot in which the value of a field will be stored.

Parameters
cycleIdthe ID of the cycle for the requested slot
Returns
the slot where data can be stored

Implements fesa::AbstractMultiplexingManager.


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