This class extends the AbstractMultiplexingManager in order to provide a multiplexing manager in which every cycle has a fixed slot. More...
#include <MultiplexingManager.h>
Public Member Functions | |
int32_t | getSlot (MultiplexingContext &context) |
This method returns the slot in which the required value is stored, according to the given multiplexing context. | |
int32_t | requireSlot (MultiplexingContext &context) |
This method returns the next slot in which the value of a field will be stored. | |
MultiplexingManager (std::string &name, CycleDescriptor *timingDescriptor, MultiplexingDataManager *dataManager) | |
Constructor. | |
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 | requireSlot (const std::string &cycleName) |
This method returns the next slot in which the value of a field will be stored. | |
int32_t | requireSlot (int32_t cycleId) |
This method returns the next slot in which the value of a field will be stored. The method is implemented by the concrete multiplexing manager. | |
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 | getLastSlot (const std::string &cycleName) |
This method returns the slot in which the last value for the virtual accelerator passed by argument was stored. The method is implemented by the concrete multiplexing manager. | |
Private Attributes | |
MultiplexingDataManager * | dataManager_ |
The dataManager of this multiplexing manager, to be independent from memory questions. |
This class extends the AbstractMultiplexingManager in order to provide a multiplexing manager in which every cycle has a fixed slot.
Definition at line 18 of file MultiplexingManager.h.
fesa::MultiplexingManager::MultiplexingManager | ( | std::string & | name, | |
CycleDescriptor * | timingDescriptor, | |||
MultiplexingDataManager * | dataManager | |||
) |
Constructor.
name | of the multiplexing manager | |
timingDescriptor | reference to the TimingDescriptor that will be used in the multiplexing manager | |
dataManager | reference to the MultiplexingDataManager, which is used to manage the memory access to the data |
Definition at line 17 of file MultiplexingManager.cpp.
int32_t fesa::MultiplexingManager::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. The method is implemented by the concrete multiplexing manager.
cycleName | the name of teh cycle |
Implements fesa::AbstractMultiplexingManager.
Definition at line 22 of file MultiplexingManager.cpp.
References fesa::CycleDescriptor::getCycleSelectorId(), fesa::NO_TIMING_SELECTOR, and fesa::AbstractMultiplexingManager::timingDescriptor_.
int32_t fesa::MultiplexingManager::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 36 of file MultiplexingManager.cpp.
References FesaErrorVAcceleratorSlotValueNotCorrect, fesa::CycleDescriptor::getCycleIdsCol(), fesa::NO_TIMING_SELECTOR, and fesa::AbstractMultiplexingManager::timingDescriptor_.
Referenced by requireSlot().
AbstractMultiplexingDataManager * fesa::MultiplexingManager::getMultiplexingDataManager | ( | ) | [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 87 of file MultiplexingManager.cpp.
References dataManager_.
int32_t fesa::MultiplexingManager::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 64 of file MultiplexingManager.cpp.
References fesa::MultiplexingContext::getCycleName(), and requireSlot().
Referenced by requireSlot().
int32_t fesa::MultiplexingManager::requireSlot | ( | int32_t | cycleId | ) | [protected, virtual] |
This method returns the next slot in which the value of a field will be stored. The method is implemented by the concrete multiplexing manager.
cycleId | the ID of the cycle for the requested slot |
Implements fesa::AbstractMultiplexingManager.
Definition at line 82 of file MultiplexingManager.cpp.
References getLastSlot().
int32_t fesa::MultiplexingManager::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 71 of file MultiplexingManager.cpp.
References getLastSlot().
int32_t fesa::MultiplexingManager::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 77 of file MultiplexingManager.cpp.
References getSlot().
Referenced by getSlot().
The dataManager of this multiplexing manager, to be independent from memory questions.
Definition at line 77 of file MultiplexingManager.h.
Referenced by getMultiplexingDataManager().