fesa-core  4.2.0
fesa::SynchronizationLabObjectFactory Class Reference

This class provides methods in order to create the different types of timing descriptors or in general the specific Lab synchronization objects. More...

#include <SynchronizationLabObjectFactory.h>

Inherits fesa::SynchronizationFactory.

Public Member Functions

void releaseInstance ()
 releases the single instance of this class The implementation of the method you can find inside the lab package
 
boost::shared_ptr
< MultiplexingContext
createTimingContext (int64_t cycleTimeStamp, const std::string &cycleName, int64_t interruptStamp=MultiplexingContext::UNKNOWN_TIMESTAMP)
 creates a lab specific instance of an Timing Context for the specified parameters and returns a pointer to it More...
 
- Public Member Functions inherited from fesa::SynchronizationFactory
AbstractMultiplexingManagercreateMultiplexingManager (const std::string &timingDomain, const std::string &multiplexingCriterion)
 this method returns a multiplexing manager which contains one slot per cycle name More...
 
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 More...
 
AbstractMultiplexingManagercreateRollingBufferMuxManager (const std::string &timingDomain, const std::string &multiplexingCriterion, const std::string &uniqueRollingPrefix, 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 More...
 
AbstractMultiplexingManagercreateSharedRollingBufferMuxManager (const std::string &timingDomain, const std::string &multiplexingCriterion, const std::string &uniqueRollingPrefix, 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 More...
 
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 More...
 
CycleDescriptorgetCycleDescriptor (const std::string &timingDomain, const std::string &mainMuxCriterion)
 Returns the CycleDescriptor for the given timing Domain and multiplexing criterion This method tries to find an existing instance before creating a new one. In case of creation, it does some core-actions before triggering the lab-specific implementation (see SynchronizationLabObjectFactory). More...
 
CycleDescriptorgetCycleDescriptor (const std::string &cycleSelector)
 returns the CycleDescriptor for the given cycle selector More...
 
virtual ~SynchronizationFactory ()
 Destructor.
 

Static Public Member Functions

static
SynchronizationLabObjectFactory
getInstance ()
 returns the single instance of this class (also creates it, if it does not already exist) The implementation of the method you can find inside the lab package More...
 

Protected Member Functions

CycleDescriptorcreateCycleDescriptorLab (const std::string &timingDomain, const std::string &timingCriterion)
 creates a lab specific instance of a Timing Descriptor, if not already done and returns a pointer to it More...
 
 SynchronizationLabObjectFactory ()
 Constructor, is protected in order to hide it. Since the class is implemented as singleton there is no need to show this method outside.
 
virtual ~SynchronizationLabObjectFactory ()
 Destructor, is protected in order to hide it. Since the class is implemented as singleton there is no need to show this method outside.
 

Static Protected Attributes

static
SynchronizationLabObjectFactory
instance_
 the single instance of this class
 

Detailed Description

This class provides methods in order to create the different types of timing descriptors or in general the specific Lab synchronization objects.

Member Function Documentation

CycleDescriptor* fesa::SynchronizationLabObjectFactory::createCycleDescriptorLab ( const std::string &  timingDomain,
const std::string &  timingCriterion 
)
protected

creates a lab specific instance of a Timing Descriptor, if not already done and returns a pointer to it

Parameters
nameThe name of the cycle/Timing Descriptor which is requested
Returns
a pointer to the generated Timing Descriptor
Exceptions
Onerror this method can throw an exception
boost::shared_ptr<MultiplexingContext> fesa::SynchronizationLabObjectFactory::createTimingContext ( int64_t  cycleTimeStamp,
const std::string &  cycleName,
int64_t  interruptStamp = MultiplexingContext::UNKNOWN_TIMESTAMP 
)

creates a lab specific instance of an Timing Context for the specified parameters and returns a pointer to it

Parameters
cycleTimeStampThe cycleStamp for the requested TimingContext
cycleNameThe cycleName for the requested TimingContext
interruptStampThe interrupt stamp. If not provided, the cycle stamp will be used as the interrupt stamp.
Returns
a pointer to the generated Timing Context
Exceptions
Onerror this method can throw an exception
static SynchronizationLabObjectFactory* fesa::SynchronizationLabObjectFactory::getInstance ( )
static

returns the single instance of this class (also creates it, if it does not already exist) The implementation of the method you can find inside the lab package

Returns
the single instance of this class

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