17 unsigned int nProducts( 0 );
18 for (
auto& thisAlgoDependencies : algosDependencies ) {
19 nProducts += thisAlgoDependencies.size();
29 unsigned int algoIndex = 0;
30 long int productIndex = 0;
31 for (
auto& thisAlgoDependencies : algosDependencies ) {
34 for (
auto& product : thisAlgoDependencies ) {
37 if ( ret_val.second ==
true ) ++productIndex;
39 dependency_bits[ret_val.first->second] =
true;
67 for (
const auto& new_product : newProducts ) {
89 for (
const auto& p :
m_fc ) {
boost::dynamic_bitset dependency_bitset
Type holding the dependencies for one single algorithm.
void updateDataObjectsCatalog(const DataObjIDColl &newProducts)
Update the catalog of available products in the slot.
DataObjIDColl dataDependencies(unsigned int iAlgo) const
Get the dependencies of a single algo;.
static std::vector< DataObjID > m_productName_vec
Track the products, assigning an index to them. Static since the same for all events.
DataObjIDColl content() const
Get the content of the catalog.
static std::unordered_map< productName_t, long int, DataObjID_Hasher > m_productName_index_map
static std::vector< dependency_bitset > m_algosRequirements
Requirements of algos. Static since the same for all events.
long int productName2index(const productName_t &productName)
Simple helper method to convert the product name into an index.
void reset()
Reset to default values.
dependency_bitset m_dataObjectsCatalog
Catalog of the products in the whiteboard.
DataFlowManager(const std::list< IAlgorithm * > &)
Constructor.
bool canAlgorithmRun(unsigned int iAlgo)
Needed data products are available.