The Gaudi Framework
v29r0 (ff2e7097)
|
The DataFlowManager takes care of keeping track of the dependencies of the algorithms in terms of dataObjects. More...
#include <GaudiHive/src/DataFlowManager.h>
Public Types | |
typedef boost::dynamic_bitset | dependency_bitset |
Type holding the dependencies for one single algorithm. More... | |
typedef std::vector< DataObjIDColl > | algosDependenciesCollection |
Public Member Functions | |
DataFlowManager (const std::list< IAlgorithm * > &) | |
Constructor. More... | |
DataFlowManager (algosDependenciesCollection algoDependencies) | |
Constructor (transitional, will be deprecated once handles are in place) More... | |
bool | canAlgorithmRun (unsigned int iAlgo) |
Needed data products are available. More... | |
void | updateDataObjectsCatalog (const DataObjIDColl &newProducts) |
Update the catalog of available products in the slot. More... | |
void | reset () |
Reset to default values. More... | |
DataObjIDColl | content () const |
Get the content of the catalog. More... | |
DataObjIDColl | dataDependencies (unsigned int iAlgo) const |
Get the dependencies of a single algo;. More... | |
Private Types | |
typedef DataObjID | productName_t |
Track the products, assigning an index to them. Static since the same for all events. More... | |
Private Member Functions | |
long int | productName2index (const productName_t &productName) |
Simple helper method to convert the product name into an index. More... | |
DataObjID & | index2productName (const unsigned int i) |
Simple helper method to convert an index to a product name. More... | |
Private Attributes | |
DataObjIDColl | m_fc |
dependency_bitset | m_dataObjectsCatalog |
Catalog of the products in the whiteboard. More... | |
Static Private Attributes | |
static std::vector< dependency_bitset > | m_algosRequirements |
Requirements of algos. Static since the same for all events. More... | |
static std::vector< DataObjID > | m_productName_vec |
Track the products, assigning an index to them. Static since the same for all events. More... | |
static std::unordered_map< productName_t, long int, DataObjID_Hasher > | m_productName_index_map |
The DataFlowManager takes care of keeping track of the dependencies of the algorithms in terms of dataObjects.
One instance of the DataFlowManager is responsible for one event.
Definition at line 28 of file DataFlowManager.h.
Definition at line 35 of file DataFlowManager.h.
typedef boost::dynamic_bitset DataFlowManager::dependency_bitset |
Type holding the dependencies for one single algorithm.
Definition at line 33 of file DataFlowManager.h.
|
private |
Track the products, assigning an index to them. Static since the same for all events.
Definition at line 67 of file DataFlowManager.h.
|
inline |
Constructor.
Definition at line 37 of file DataFlowManager.h.
DataFlowManager::DataFlowManager | ( | algosDependenciesCollection | algoDependencies | ) |
Constructor (transitional, will be deprecated once handles are in place)
If this is the first instance, the constructor fills the requirements of all algorithms and indexes the data products.
Definition at line 13 of file DataFlowManager.cpp.
bool DataFlowManager::canAlgorithmRun | ( | unsigned int | iAlgo | ) |
Needed data products are available.
This method is called to know if the algorithm can run according to what data objects are in the event.
Definition at line 56 of file DataFlowManager.cpp.
DataObjIDColl DataFlowManager::content | ( | ) | const |
Get the content of the catalog.
Get the content (inefficient, only for debug in case of crashes)
Definition at line 86 of file DataFlowManager.cpp.
DataObjIDColl DataFlowManager::dataDependencies | ( | unsigned int | iAlgo | ) | const |
Get the dependencies of a single algo;.
Get the data dependencies (inefficient, only for debug in case of crashes)
Definition at line 97 of file DataFlowManager.cpp.
|
inlineprivate |
Simple helper method to convert an index to a product name.
Definition at line 76 of file DataFlowManager.h.
|
inlineprivate |
Simple helper method to convert the product name into an index.
Definition at line 71 of file DataFlowManager.h.
void DataFlowManager::reset | ( | ) |
Reset to default values.
Reset the slot for a new event.
Definition at line 77 of file DataFlowManager.cpp.
void DataFlowManager::updateDataObjectsCatalog | ( | const DataObjIDColl & | newProducts | ) |
Update the catalog of available products in the slot.
Definition at line 65 of file DataFlowManager.cpp.
|
staticprivate |
Requirements of algos. Static since the same for all events.
Definition at line 63 of file DataFlowManager.h.
|
private |
Catalog of the products in the whiteboard.
Definition at line 61 of file DataFlowManager.h.
|
private |
Definition at line 58 of file DataFlowManager.h.
|
staticprivate |
Definition at line 69 of file DataFlowManager.h.
|
staticprivate |
Track the products, assigning an index to them. Static since the same for all events.
Definition at line 65 of file DataFlowManager.h.