This class extends the AbstractMultiplexingManager in order to provide a rolling multiplexing manager (explanation of "rolling" see class RollingDataManager). More...
#include <RollingMultiplexingManager.h>
Public Member Functions | |
int32_t | requireSlot (MultiplexingContext &context) |
This method returns the next slot in which the value of a field will be stored. | |
int32_t | getSlot (MultiplexingContext &context) |
This method returns the slot in which the required value is stored, according to the given multiplexing context. | |
RollingMultiplexingManager (std::string &name, CycleDescriptor *timingDescriptor, RollingMultiplexingDataManager *dataManager) | |
Constructor. | |
RollingMultiplexingManager (RollingMultiplexingDataManager *dataManager) | |
Constructor. | |
int32_t | getDepth () |
This method returns the depth of the multiplexing manager. | |
Protected Member Functions | |
AbstractMultiplexingDataManager * | getMultiplexingDataManager () |
This method returns the MultiplexingDataManager. Is is pure virtual in the baseclass, so we have to provide an implementation. | |
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. | |
int32_t | requireSlot (const std::string &cycleName) |
This method returns the next slot in which the value of a field will be stored. | |
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. | |
int32_t | requireSlot (int32_t cycleId) |
This method returns the next slot in which the value of a field will be stored. | |
Private Attributes | |
RollingMultiplexingDataManager * | dataManager_ |
The dataManager of this multiplexing manager, to be independent from memory questions. |
This class extends the AbstractMultiplexingManager in order to provide a rolling multiplexing manager (explanation of "rolling" see class RollingDataManager).
Definition at line 21 of file RollingMultiplexingManager.h.
fesa::RollingMultiplexingManager::RollingMultiplexingManager | ( | std::string & | name, | |
CycleDescriptor * | timingDescriptor, | |||
RollingMultiplexingDataManager * | 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 |
Definition at line 15 of file RollingMultiplexingManager.cpp.
fesa::RollingMultiplexingManager::RollingMultiplexingManager | ( | RollingMultiplexingDataManager * | dataManager | ) |
Constructor.
dataManager | reference to the data manager, which is used to manage the memory access to the data |
Definition at line 21 of file RollingMultiplexingManager.cpp.
int32_t fesa::RollingMultiplexingManager::getDepth | ( | ) | [inline, virtual] |
This method returns the depth of the multiplexing manager.
Reimplemented from fesa::AbstractMultiplexingManager.
Definition at line 115 of file RollingMultiplexingManager.h.
References dataManager_, and fesa::RollingMultiplexingDataManager::getDepth().
int32_t fesa::RollingMultiplexingManager::getLastSlot | ( | int32_t | cycleId | ) | [protected, virtual] |
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.
Definition at line 43 of file RollingMultiplexingManager.cpp.
References dataManager_, FesaErrorVAcceleratorSlotValueNotCorrect, and fesa::RollingMultiplexingDataManager::findCycleIdBackward().
int32_t fesa::RollingMultiplexingManager::getLastSlot | ( | const std::string & | cycleName | ) | [protected, virtual] |
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.
Definition at line 27 of file RollingMultiplexingManager.cpp.
References dataManager_, FesaErrorVAcceleratorSlotValueNotCorrect, fesa::RollingMultiplexingDataManager::findCycleIdBackward(), fesa::CycleDescriptor::getCycleSelectorId(), and fesa::AbstractMultiplexingManager::timingDescriptor_.
AbstractMultiplexingDataManager * fesa::RollingMultiplexingManager::getMultiplexingDataManager | ( | ) | [inline, protected, virtual] |
This method returns the MultiplexingDataManager. Is is pure virtual in the baseclass, so we have to provide an implementation.
Implements fesa::AbstractMultiplexingManager.
Definition at line 120 of file RollingMultiplexingManager.h.
References dataManager_.
int32_t fesa::RollingMultiplexingManager::getSlot | ( | MultiplexingContext & | context | ) | [virtual] |
This method returns the slot in which the required value is stored, according to the given multiplexing context.
context | the multiplexing context for which a slot is requested |
Implements fesa::AbstractMultiplexingManager.
Definition at line 60 of file RollingMultiplexingManager.cpp.
References dataManager_, FesaErrorVAcceleratorSlotValueNotCorrect, fesa::RollingMultiplexingDataManager::findCycleIdBackward(), fesa::RollingMultiplexingDataManager::findCycleStampBackward(), fesa::MultiplexingContext::getCycleName(), fesa::CycleDescriptor::getCycleSelectorId(), fesa::RollingMultiplexingDataManager::getCycleStamp(), fesa::MultiplexingContext::getCycleStamp(), fesa::MultiplexingContext::setCycleStamp(), and fesa::AbstractMultiplexingManager::timingDescriptor_.
int32_t fesa::RollingMultiplexingManager::requireSlot | ( | int32_t | cycleId | ) | [protected, virtual] |
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.
Definition at line 98 of file RollingMultiplexingManager.cpp.
References FesaErrorRollingManagerRequiresCycleStamp.
int32_t fesa::RollingMultiplexingManager::requireSlot | ( | const std::string & | cycleName | ) | [protected, virtual] |
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.
Definition at line 90 of file RollingMultiplexingManager.cpp.
References FesaErrorRollingManagerRequiresCycleStamp.
int32_t fesa::RollingMultiplexingManager::requireSlot | ( | MultiplexingContext & | context | ) | [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.
Definition at line 105 of file RollingMultiplexingManager.cpp.
References dataManager_, FesaErrorWrongContext, fesa::RollingMultiplexingDataManager::findCycleStampBackward(), fesa::MultiplexingContext::getCycleName(), fesa::CycleDescriptor::getCycleSelectorId(), fesa::MultiplexingContext::getCycleStamp(), fesa::RollingMultiplexingDataManager::nextPosition(), and fesa::AbstractMultiplexingManager::timingDescriptor_.
The dataManager of this multiplexing manager, to be independent from memory questions.
Definition at line 112 of file RollingMultiplexingManager.h.
Referenced by getDepth(), getLastSlot(), getMultiplexingDataManager(), getSlot(), and requireSlot().