#include <SynchronizationFactory.h>
Public Member Functions | |
AbstractMultiplexingManager * | createMultiplexingManager (const std::string &timingDomain, const std::string &multiplexingCriterion) |
this method returns a multiplexing manager which contains one slot per cycle name | |
AbstractMultiplexingManager * | createSharedMultiplexingManager (const std::string &timingDomain, const std::string &multiplexingCriterion) |
this method returns a multiplexing manager which contains one slot per cycle name but which the information stored in shared memory. It has to be used in split mode | |
AbstractMultiplexingManager * | createRollingMultiplexingManager (const std::string &timingDomain, const std::string &multiplexingCriterion, int32_t depth) |
this method returns a multiplexing manager which a fixed number of slot according to the value in depth in order to manage them as a rolling buffer | |
AbstractMultiplexingManager * | createRollingSharedMultiplexingManager (const std::string &timingDomain, const std::string &multiplexingCriterion, int32_t depth) |
this method returns a multiplexing manager which a fixed number of slot according to the value in depth in order to manage them as a rolling buffer. All of its structures are stored in shared memory thereby it has to be used in split mode | |
AbstractMultiplexingManager * | createExtendedMultiplexingManager (AbstractMultiplexingManager *baseMultiplexingManager, std::vector< std::string > &extraCriterionCol) |
this method returns an extended multiplexing manager. This manager is extending a standard manager giving to it an extra dimension | |
CycleDescriptor * | getCycleDescriptor (const std::string &timingDomain, const std::string &timingCriterion) |
returns the CycleDescriptor which is adressed by the given timingDomain and criterion | |
CycleDescriptor * | getCycleDescriptor (const std::string &cycleSelector) |
returns the CycleDescriptor which is consists of the given cycle-Selector | |
virtual | ~SynchronizationFactory () |
Destructor. | |
Protected Member Functions | |
CycleDescriptor * | createCycleDescriptor (const std::string &timingDomain, const std::string &multiplexingCriterion) |
This method does some core-actions before triggering the lab-specific implementation, it is only used internally. | |
Private Member Functions | |
virtual CycleDescriptor * | createCycleDescriptorLab (const std::string &timingDomain, const std::string &multiplexingCriterion)=0 |
The creation of an cycle descriptor is done in the sync. Labobjextfactory, which inherits from the SynchronizationFactory. | |
Private Attributes | |
std::map< std::string, CycleDescriptor * > | cycleDescriptorCol_ |
contains all the cycle descriptors on the system |
Definition at line 18 of file SynchronizationFactory.h.
fesa::SynchronizationFactory::~SynchronizationFactory | ( | ) | [virtual] |
Destructor.
Definition at line 22 of file SynchronizationFactory.cpp.
CycleDescriptor * fesa::SynchronizationFactory::createCycleDescriptor | ( | const std::string & | timingDomain, | |
const std::string & | multiplexingCriterion | |||
) | [protected] |
This method does some core-actions before triggering the lab-specific implementation, it is only used internally.
name | the multiplexing context will be used to generate the name of the multiplexing manager, etc. |
This | method returns a FesaException in case of error creating the timing descriptor |
Definition at line 125 of file SynchronizationFactory.cpp.
References createCycleDescriptorLab(), cycleDescriptorCol_, FesaErrorCycleDescriptorNotFound, getCycleDescriptor(), fesa::FesaException::getErrorCode(), and fesa::CycleDescriptor::getName().
Referenced by createExtendedMultiplexingManager(), createMultiplexingManager(), createRollingMultiplexingManager(), createRollingSharedMultiplexingManager(), and createSharedMultiplexingManager().
virtual CycleDescriptor* fesa::SynchronizationFactory::createCycleDescriptorLab | ( | const std::string & | timingDomain, | |
const std::string & | multiplexingCriterion | |||
) | [private, pure virtual] |
The creation of an cycle descriptor is done in the sync. Labobjextfactory, which inherits from the SynchronizationFactory.
name | the multiplexing context will be used to generate the name of the multiplexing manager, etc. |
This | method returns a FesaException in case of error creating the timing descriptor |
Implemented in fesa::SynchronizationLabObjectFactory.
Referenced by createCycleDescriptor().
AbstractMultiplexingManager * fesa::SynchronizationFactory::createExtendedMultiplexingManager | ( | AbstractMultiplexingManager * | baseMultiplexingManager, | |
std::vector< std::string > & | extraCriterionCol | |||
) |
this method returns an extended multiplexing manager. This manager is extending a standard manager giving to it an extra dimension
baseMultiplexingManager | the Multiplexing Manager to be extended | |
extraCriterionCol | concatenation of all the extra criterions |
Definition at line 91 of file SynchronizationFactory.cpp.
References createCycleDescriptor(), fesa::CycleSelector::criterion_, fesa::CycleSelector::domain_, FesaErrorNotValidExtraCondition, fesa::AbstractMultiplexingManager::getMultiplexingManager(), fesa::AbstractMultiplexingManager::getName(), and fesa::parseCycleSelector().
Referenced by fesa::DeviceFactoryImp< GlobalDeviceType, DomainStoreType, DevInstType >::configureFields().
AbstractMultiplexingManager * fesa::SynchronizationFactory::createMultiplexingManager | ( | const std::string & | timingDomain, | |
const std::string & | multiplexingCriterion | |||
) |
this method returns a multiplexing manager which contains one slot per cycle name
timingDomain | for the multiplexing manager | |
multiplexing | criterion for the multiplexing manager |
Definition at line 26 of file SynchronizationFactory.cpp.
References createCycleDescriptor(), fesa::AbstractMultiplexingManager::getMultiplexingManager(), and fesa::CycleDescriptor::getName().
Referenced by fesa::DeviceFactoryImp< GlobalDeviceType, DomainStoreType, DevInstType >::configureFields().
AbstractMultiplexingManager * fesa::SynchronizationFactory::createRollingMultiplexingManager | ( | const std::string & | timingDomain, | |
const std::string & | multiplexingCriterion, | |||
int32_t | depth | |||
) |
this method returns a multiplexing manager which a fixed number of slot according to the value in depth in order to manage them as a rolling buffer
name | the multiplexing context will be used to generate the name of the multiplexing manager, etc. | |
depth | depth of the rolling buffer |
Definition at line 58 of file SynchronizationFactory.cpp.
References createCycleDescriptor(), fesa::AbstractMultiplexingManager::getMultiplexingManager(), and fesa::CycleDescriptor::getName().
Referenced by fesa::DeviceFactoryImp< GlobalDeviceType, DomainStoreType, DevInstType >::configureFields().
AbstractMultiplexingManager * fesa::SynchronizationFactory::createRollingSharedMultiplexingManager | ( | const std::string & | timingDomain, | |
const std::string & | multiplexingCriterion, | |||
int32_t | depth | |||
) |
this method returns a multiplexing manager which a fixed number of slot according to the value in depth in order to manage them as a rolling buffer. All of its structures are stored in shared memory thereby it has to be used in split mode
name | the multiplexing criterion will be used to generate the name of the multiplexing manager, etc. | |
depth | depth of the rolling buffer |
Definition at line 75 of file SynchronizationFactory.cpp.
References createCycleDescriptor(), fesa::AbstractMultiplexingManager::getMultiplexingManager(), and fesa::CycleDescriptor::getName().
Referenced by fesa::DeviceFactoryImp< GlobalDeviceType, DomainStoreType, DevInstType >::configureFields().
AbstractMultiplexingManager * fesa::SynchronizationFactory::createSharedMultiplexingManager | ( | const std::string & | timingDomain, | |
const std::string & | multiplexingCriterion | |||
) |
this method returns a multiplexing manager which contains one slot per cycle name but which the information stored in shared memory. It has to be used in split mode
name | the multiplexing criterion will be used to generate the name of the multiplexing manager, etc. |
Definition at line 42 of file SynchronizationFactory.cpp.
References createCycleDescriptor(), fesa::AbstractMultiplexingManager::getMultiplexingManager(), and fesa::CycleDescriptor::getName().
Referenced by fesa::DeviceFactoryImp< GlobalDeviceType, DomainStoreType, DevInstType >::configureFields().
CycleDescriptor * fesa::SynchronizationFactory::getCycleDescriptor | ( | const std::string & | cycleSelector | ) |
returns the CycleDescriptor which is consists of the given cycle-Selector
cycleSelector | cycleSelector of the CycleDescriptor to return |
Definition at line 162 of file SynchronizationFactory.cpp.
References cycleDescriptorCol_, and FesaErrorCycleDescriptorNotFound.
CycleDescriptor * fesa::SynchronizationFactory::getCycleDescriptor | ( | const std::string & | timingDomain, | |
const std::string & | timingCriterion | |||
) |
returns the CycleDescriptor which is adressed by the given timingDomain and criterion
timingDomain | timing-domain of the CycleDescriptor to return | |
timingCriterion | timing criterion of the CycleDescriptor to return |
Definition at line 149 of file SynchronizationFactory.cpp.
References cycleDescriptorCol_, and FesaErrorCycleDescriptorNotFound.
Referenced by fesa::AbstractSubscriptionFilter::allCyclesFirstUpdate(), createCycleDescriptor(), fesa::MultiplexingContext::setExtraCondition(), and fesa::TimingContext::TimingContext().
std::map<std::string, CycleDescriptor*> fesa::SynchronizationFactory::cycleDescriptorCol_ [private] |
contains all the cycle descriptors on the system
Definition at line 114 of file SynchronizationFactory.h.
Referenced by createCycleDescriptor(), and getCycleDescriptor().