fesa::ExtendedMultiplexingManager Class Reference

This mutiplexing manager is needed in order to do Multi-Multiplexing. This means it needs to be able to handle extra criteria. More...

#include <ExtendedMultiplexingManager.h>

Inheritance diagram for fesa::ExtendedMultiplexingManager:
fesa::AbstractMultiplexingManager

List of all members.

Public Member Functions

 ExtendedMultiplexingManager (const std::string &name, std::vector< std::string > extraCriterionCol, AbstractMultiplexingManager *baseMultiplexingManager)
 Constructor.
int32_t getDepth ()
 returns the depth of this multiplexing manager
int32_t requireSlot (MultiplexingContext &context)
 requests a slot dependent on a MultiplexingContext
int32_t getSlot (MultiplexingContext &context)
 This method returns the slot in which the required value is stored, according to the given multiplexing context.
const std::vector< std::string > & getExtraCriterionCol ()
 This method returns the list of extra criteria.
AbstractMultiplexingDataManagergetMultiplexingDataManager ()
 This method returns the MultiplexingDataManager. Is is pure virtual in the baseclass, so we have to provide an implementation.

Protected Member Functions

int32_t getLastSlot (int32_t cycleId)
 This method has to be implemented here, (since it is pure virtual in the baseclass) But it cannot be used, since the cycleId is not enough here to identify a slot. The method will throw an exception, when called.
int32_t getLastSlot (int32_t cycleId, const std::string &extraCriterion)
 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.
int32_t requireSlot (int32_t cycleId)
 This method has to be implemented here, (since it is pure virtual in the baseclass) But it cannot be used, since the cycleId is not enough here to identify a slot. The method will throw an exception, when called.
int32_t requireSlot (int32_t cycleId, const std::string &extraCriterion)
 This method returns the next slot in which the value of a field will be stored.
int32_t getLastSlot (const std::string &cycleName)
 This method has to be implemented here, (since it is pure virtual in the baseclass) But it cannot be used, since the cycleId is not enough here to identify a slot. The method will throw an exception, when called.
int32_t getLastSlot (const std::string &cycleName, const std::string &extraCriterion)
 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.
int32_t requireSlot (const std::string &cycleName)
 This method has to be implemented here, (since it is pure virtual in the baseclass) But it cannot be used, since the cycleId is not enough here to identify a slot. The method will throw an exception, when called.
int32_t requireSlot (const std::string &cycleName, const std::string &extraCriterion)
 This method returns the next slot in which the value of a field will be stored.
int32_t getBlockOffset (MultiplexingContext &context)
 retrieve the position of the current extra condition in the collection. This position is used as an offset to calculate the slot. context reference to the current context

Protected Attributes

AbstractMultiplexingManagerbaseMultiplexingManager_
 The basic multiplexing manager, where the extended multiplexing manager "inherits" its attributes from.
std::vector< std::string > extraCriterionCol_
 a collection of extra-criterions

Friends

class AbstractField
class Field

Detailed Description

This mutiplexing manager is needed in order to do Multi-Multiplexing. This means it needs to be able to handle extra criteria.

Definition at line 19 of file ExtendedMultiplexingManager.h.


Constructor & Destructor Documentation

fesa::ExtendedMultiplexingManager::ExtendedMultiplexingManager ( const std::string &  name,
std::vector< std::string >  extraCriterionCol,
AbstractMultiplexingManager baseMultiplexingManager 
)

Constructor.

Parameters:
name the name of this multiplexing manager
extraConditionCol a list of extra conditions
baseMultiplexingManager The multiplexing manger from which we "inherit" its settings

Definition at line 12 of file ExtendedMultiplexingManager.cpp.

References baseMultiplexingManager_, and extraCriterionCol_.


Member Function Documentation

int32_t fesa::ExtendedMultiplexingManager::getBlockOffset ( MultiplexingContext context  )  [protected]

retrieve the position of the current extra condition in the collection. This position is used as an offset to calculate the slot. context reference to the current context

Returns:
offset of the data-block

Definition at line 38 of file ExtendedMultiplexingManager.cpp.

References extraCriterionCol_, FesaErrorNotValidExtraCondition, fesa::MultiplexingContext::getCycleStamp(), fesa::MultiplexingContext::getExtraCondition(), and fesa::MultiplexingContext::match().

Referenced by getSlot(), and requireSlot().

int32_t fesa::ExtendedMultiplexingManager::getDepth (  )  [virtual]

returns the depth of this multiplexing manager

Returns:
the depth

Reimplemented from fesa::AbstractMultiplexingManager.

Definition at line 20 of file ExtendedMultiplexingManager.cpp.

References baseMultiplexingManager_, extraCriterionCol_, and fesa::AbstractMultiplexingManager::getDepth().

const std::vector< std::string > & fesa::ExtendedMultiplexingManager::getExtraCriterionCol (  )  [inline]

This method returns the list of extra criteria.

Returns:
the reference to the collection of extra-criterions

Definition at line 175 of file ExtendedMultiplexingManager.h.

References extraCriterionCol_.

Referenced by fesa::AbstractField::store().

int32_t fesa::ExtendedMultiplexingManager::getLastSlot ( const std::string &  cycleName,
const std::string &  extraCriterion 
) [protected]

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.

Parameters:
cycleName the name of the cycle
extraCriterion The additional criterion which identifies the slot
Returns:
the last slot used by the requested cycle

Definition at line 90 of file ExtendedMultiplexingManager.cpp.

References baseMultiplexingManager_, extraCriterionCol_, fesa::AbstractMultiplexingManager::getDepth(), and fesa::AbstractMultiplexingManager::getLastSlot().

int32_t fesa::ExtendedMultiplexingManager::getLastSlot ( const std::string &  cycleName  )  [protected, virtual]

This method has to be implemented here, (since it is pure virtual in the baseclass) But it cannot be used, since the cycleId is not enough here to identify a slot. The method will throw an exception, when called.

Parameters:
cycleName the name of teh cycle
Returns:
is obsolete, since method is not used
Exceptions:
FesaException Throws an exception in any case

Implements fesa::AbstractMultiplexingManager.

Definition at line 84 of file ExtendedMultiplexingManager.cpp.

References FesaErrorMethodNotSupportedByMultiplexingManager.

int32_t fesa::ExtendedMultiplexingManager::getLastSlot ( int32_t  cycleId,
const std::string &  extraCriterion 
) [protected]

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.

Parameters:
cycleId the ID of the cycle for the requested slot
extraCriterion The additional criterion which identifies the slot
Returns:
the last slot used by the requested cycle

Definition at line 146 of file ExtendedMultiplexingManager.cpp.

References baseMultiplexingManager_, extraCriterionCol_, fesa::AbstractMultiplexingManager::getDepth(), and fesa::AbstractMultiplexingManager::getLastSlot().

int32_t fesa::ExtendedMultiplexingManager::getLastSlot ( int32_t  cycleId  )  [protected, virtual]

This method has to be implemented here, (since it is pure virtual in the baseclass) But it cannot be used, since the cycleId is not enough here to identify a slot. The method will throw an exception, when called.

Parameters:
cycleId obsolete, since method is not used
Returns:
is obsolete, since method is not used
Exceptions:
FesaException Throws an exception in any case

Implements fesa::AbstractMultiplexingManager.

Definition at line 140 of file ExtendedMultiplexingManager.cpp.

References FesaErrorMethodNotSupportedByMultiplexingManager.

Referenced by fesa::AbstractField::store().

AbstractMultiplexingDataManager * fesa::ExtendedMultiplexingManager::getMultiplexingDataManager (  )  [inline, virtual]

This method returns the MultiplexingDataManager. Is is pure virtual in the baseclass, so we have to provide an implementation.

Returns:
pointer to the DataManager

Implements fesa::AbstractMultiplexingManager.

Definition at line 170 of file ExtendedMultiplexingManager.h.

References baseMultiplexingManager_, and fesa::AbstractMultiplexingManager::getMultiplexingDataManager().

int32_t fesa::ExtendedMultiplexingManager::getSlot ( MultiplexingContext context  )  [virtual]

This method returns the slot in which the required value is stored, according to the given multiplexing context.

Parameters:
context the multiplexing context for which a slot is requested
Returns:
the slot where the data corresponding to the context is stored

Implements fesa::AbstractMultiplexingManager.

Definition at line 26 of file ExtendedMultiplexingManager.cpp.

References baseMultiplexingManager_, getBlockOffset(), fesa::AbstractMultiplexingManager::getDepth(), and fesa::AbstractMultiplexingManager::getSlot().

int32_t fesa::ExtendedMultiplexingManager::requireSlot ( const std::string &  cycleName,
const std::string &  extraCriterion 
) [protected]

This method returns the next slot in which the value of a field will be stored.

Parameters:
cycleName the name of the cycle
extraCriterion The additional criterion which identifies the slot
Returns:
the slot where the data can be stored

Definition at line 118 of file ExtendedMultiplexingManager.cpp.

References baseMultiplexingManager_, extraCriterionCol_, fesa::AbstractMultiplexingManager::getDepth(), and fesa::AbstractMultiplexingManager::requireSlot().

int32_t fesa::ExtendedMultiplexingManager::requireSlot ( const std::string &  cycleName  )  [protected, virtual]

This method has to be implemented here, (since it is pure virtual in the baseclass) But it cannot be used, since the cycleId is not enough here to identify a slot. The method will throw an exception, when called.

Parameters:
cycleName the cycle name
Returns:
obsolete, since method is not used
Exceptions:
FesaException Throws an exception in any case

Implements fesa::AbstractMultiplexingManager.

Definition at line 112 of file ExtendedMultiplexingManager.cpp.

References FesaErrorMethodNotSupportedByMultiplexingManager.

int32_t fesa::ExtendedMultiplexingManager::requireSlot ( int32_t  cycleId,
const std::string &  extraCriterion 
) [protected]

This method returns the next slot in which the value of a field will be stored.

Parameters:
cycleId the ID of the cycle for the requested slot
extraCriterion The additional criterion which identifies the slot
Returns:
the slot where the data can be stored

Definition at line 174 of file ExtendedMultiplexingManager.cpp.

References baseMultiplexingManager_, extraCriterionCol_, fesa::AbstractMultiplexingManager::getDepth(), and fesa::AbstractMultiplexingManager::requireSlot().

int32_t fesa::ExtendedMultiplexingManager::requireSlot ( int32_t  cycleId  )  [protected, virtual]

This method has to be implemented here, (since it is pure virtual in the baseclass) But it cannot be used, since the cycleId is not enough here to identify a slot. The method will throw an exception, when called.

Parameters:
cycleId obsolete, since method is not used
Returns:
obsolete, since method is not used
Exceptions:
FesaException Throws an exception in any case

Implements fesa::AbstractMultiplexingManager.

Definition at line 168 of file ExtendedMultiplexingManager.cpp.

References FesaErrorMethodNotSupportedByMultiplexingManager.

int32_t fesa::ExtendedMultiplexingManager::requireSlot ( MultiplexingContext context  )  [virtual]

requests a slot dependent on a MultiplexingContext

Parameters:
context the MultiplexingContext to choose the slot
Returns:
a slot to write data, corresponding to the given MultiplexingContext

Implements fesa::AbstractMultiplexingManager.

Definition at line 32 of file ExtendedMultiplexingManager.cpp.

References baseMultiplexingManager_, getBlockOffset(), fesa::AbstractMultiplexingManager::getDepth(), and fesa::AbstractMultiplexingManager::requireSlot().

Referenced by fesa::AbstractField::restore().


Friends And Related Function Documentation

friend class AbstractField [friend]

Reimplemented from fesa::AbstractMultiplexingManager.

Definition at line 22 of file ExtendedMultiplexingManager.h.

friend class Field [friend]

Reimplemented from fesa::AbstractMultiplexingManager.

Definition at line 23 of file ExtendedMultiplexingManager.h.


Member Data Documentation

The basic multiplexing manager, where the extended multiplexing manager "inherits" its attributes from.

Definition at line 162 of file ExtendedMultiplexingManager.h.

Referenced by ExtendedMultiplexingManager(), getDepth(), getLastSlot(), getMultiplexingDataManager(), getSlot(), and requireSlot().

std::vector<std::string> fesa::ExtendedMultiplexingManager::extraCriterionCol_ [protected]

a collection of extra-criterions

Definition at line 167 of file ExtendedMultiplexingManager.h.

Referenced by ExtendedMultiplexingManager(), getBlockOffset(), getDepth(), getExtraCriterionCol(), getLastSlot(), and requireSlot().


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

Generated on 18 Jan 2013 for Fesa by  doxygen 1.6.1