fesa::SynchronizationFactory Class Reference

#include <SynchronizationFactory.h>

Inheritance diagram for fesa::SynchronizationFactory:
fesa::SynchronizationLabObjectFactory

List of all members.

Public Member Functions

AbstractMultiplexingManagercreateMultiplexingManager (const std::string &timingDomain, const std::string &multiplexingCriterion)
 this method returns a multiplexing manager which contains one slot per cycle name
AbstractMultiplexingManagercreateSharedMultiplexingManager (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
AbstractMultiplexingManagercreateRollingMultiplexingManager (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
AbstractMultiplexingManagercreateRollingSharedMultiplexingManager (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
AbstractMultiplexingManagercreateExtendedMultiplexingManager (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
CycleDescriptorgetCycleDescriptor (const std::string &timingDomain, const std::string &timingCriterion)
 returns the CycleDescriptor which is adressed by the given timingDomain and criterion
CycleDescriptorgetCycleDescriptor (const std::string &cycleSelector)
 returns the CycleDescriptor which is consists of the given cycle-Selector
virtual ~SynchronizationFactory ()
 Destructor.

Protected Member Functions

CycleDescriptorcreateCycleDescriptor (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 CycleDescriptorcreateCycleDescriptorLab (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

Detailed Description

Definition at line 18 of file SynchronizationFactory.h.


Constructor & Destructor Documentation

fesa::SynchronizationFactory::~SynchronizationFactory (  )  [virtual]

Destructor.

Definition at line 22 of file SynchronizationFactory.cpp.


Member Function Documentation

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.

Parameters:
name the multiplexing context will be used to generate the name of the multiplexing manager, etc.
Returns:
pointer to the TimingDescriptor. It always return a valid pointer otherwise throw an exception
Exceptions:
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.

Parameters:
name the multiplexing context will be used to generate the name of the multiplexing manager, etc.
Returns:
pointer to the TimingDescriptor. It always return a valid pointer otherwise throw an exception
Exceptions:
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

Parameters:
baseMultiplexingManager the Multiplexing Manager to be extended
extraCriterionCol concatenation of all the extra criterions
Returns:
a link to the created abstract multiplexing manager

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

Parameters:
timingDomain for the multiplexing manager
multiplexing criterion for the multiplexing manager
Returns:
a link to the created abstract 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

Parameters:
name the multiplexing context will be used to generate the name of the multiplexing manager, etc.
depth depth of the rolling buffer
Returns:
a link to the created abstract multiplexing manager

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

Parameters:
name the multiplexing criterion will be used to generate the name of the multiplexing manager, etc.
depth depth of the rolling buffer
Returns:
a link to the created abstract multiplexing manager

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

Parameters:
name the multiplexing criterion will be used to generate the name of the multiplexing manager, etc.
Returns:
a link to the created abstract multiplexing manager

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

Parameters:
cycleSelector cycleSelector of the CycleDescriptor to return
Returns:
A reference to the desired CycleDescriptor, or NULL if not found

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

Parameters:
timingDomain timing-domain of the CycleDescriptor to return
timingCriterion timing criterion of the CycleDescriptor to return
Returns:
A reference to the desired CycleDescriptor, or NULL if not found

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().


Member Data Documentation

contains all the cycle descriptors on the system

Definition at line 114 of file SynchronizationFactory.h.

Referenced by createCycleDescriptor(), and getCycleDescriptor().


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

Generated on 18 Jan 2013 for Fesa by  doxygen 1.6.1