fesa-core
5.0.1
|
This class extends the AbstractMultiplexingManager in order to provide a rolling multiplexing manager (explanation of "rolling" see class RollingDataManager) More...
#include <RollingBufferMuxManager.h>
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 CycleDescriptor * | getTimingDescriptor () 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 | |
AbstractMultiplexingDataManager * | getMultiplexingDataManager () |
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 CycleDescriptor * | timingDescriptor_ |
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 | |
This class extends the AbstractMultiplexingManager in order to provide a rolling multiplexing manager (explanation of "rolling" see class RollingDataManager)
fesa::RollingBufferMuxManager::RollingBufferMuxManager | ( | const std::string & | name, |
CycleDescriptor * | timingDescriptor, | ||
RollingBufferMuxDataManager * | dataManager | ||
) |
Constructor.
name | The multiplexing criterion is the name of the multiplexing manager |
timingDescriptor | to describe the used timing system |
dataManager | reference to the data manager, which is used to manage the memory access to the data |
|
virtual |
Returns the slot closest to the given timestamp.
timestamp | the timestamp to look for |
Reimplemented from fesa::AbstractMultiplexingManager.
|
virtual |
Returns the slot closest to the given timestamp whose cycle matches cycleName.
cycleName | the name of the cycle to look for |
timestamp | the timestamp to look for |
Reimplemented from fesa::AbstractMultiplexingManager.
|
inlinevirtual |
This method returns the depth of the multiplexing manager.
Reimplemented from fesa::AbstractMultiplexingManager.
|
protectedvirtual |
This method returns the slot in which the last value for the virtual accelerator passed by argument was stored.
cycleId | the ID of the cycle for the requested slot |
Implements fesa::AbstractMultiplexingManager.
|
protectedvirtual |
This method returns the slot in which the last value for the virtual accelerator passed by argument was stored.
cycleId | the ID of the cycle for the requested slot |
Implements fesa::AbstractMultiplexingManager.
|
inlineprotectedvirtual |
This method returns the MultiplexingDataManager. Is is pure virtual in the baseclass, so we have to provide an implementation.
Implements fesa::AbstractMultiplexingManager.
|
virtual |
This method the last given cycleName set slot.
Reimplemented from fesa::AbstractMultiplexingManager.
|
virtual |
Returns the slot corresponding to timeStamp, or INVALID_SLOT if this feature is not supported by the concrete MultiplexingManager.
FesaException | if no slot is assigned timeStamp. |
Reimplemented from fesa::AbstractMultiplexingManager.
|
virtual |
This method returns the next slot in which the value of a field will be stored.
context | the multiplexing context for which a slot is requested |
Implements fesa::AbstractMultiplexingManager.
|
protectedvirtual |
This method returns the next slot in which the value of a field will be stored.
cycleId | the ID of the cycle for the requested slot |
Implements fesa::AbstractMultiplexingManager.
|
protectedvirtual |
This method returns the next slot in which the value of a field will be stored.
cycleId | the ID of the cycle for the requested slot |
Implements fesa::AbstractMultiplexingManager.