1 #ifndef GAUDIHIVE_ALGRESOURCEPOOL_H     2 #define GAUDIHIVE_ALGRESOURCEPOOL_H    18 #include "boost/dynamic_bitset.hpp"    19 #include "tbb/concurrent_queue.h"    33   using extends::extends;
    78       this, 
"TopAlg", {}, 
"names of the algorithms to be passed to the algorithm manager"};
    80                                              "override the Un-Clonability of Algorithms. Use with caution!"};
    98 #endif // GAUDIHIVE_ALGRESOURCEPOOL_H ListAlg m_flatUniqueAlgList
The flat list of algorithms w/o clones. 
const std::string & name() const  override
Retrieve name of the service. 
Implementation of property with value of concrete type. 
std::map< std::string, unsigned int > m_resource_indices
StatusCode flattenSequencer(Algorithm *sequencer, ListAlg &alglist, unsigned int recursionDepth=0)
Recursively flatten an algList. 
std::mutex m_resource_mutex
StatusCode beginRun() override
std::list< SmartIF< IAlgorithm > > ListAlg
StatusCode stop() override
StatusCode endRun() override
The AlgResourcePool is a concrete implementation of the IAlgResourcePool interface. 
state_type m_available_resources
Gaudi::Property< bool > m_overrideUnClonable
boost::dynamic_bitset state_type
tbb::concurrent_bounded_queue< IAlgorithm * > concurrentQueueIAlgPtr
std::list< IAlgorithm * > m_flatUniqueAlgPtrList
The flat list of algorithms w/o clones which is returned. 
This class is used for returning status codes from appropriate routines. 
std::map< size_t, state_type > m_resource_requirements
StatusCode start() override
~AlgResourcePool() override
std::list< IAlgorithm * > m_topAlgPtrList
The top list of algorithms. 
std::list< IAlgorithm * > getFlatAlgList() override
StatusCode releaseResource(const std::string &name) override
Release a certrain resource. 
Gaudi::Property< std::vector< std::string > > m_topAlgNames
std::list< IAlgorithm * > getTopAlgList() override
The IAlgorithm is the interface implemented by the Algorithm base class. 
StatusCode acquireResource(const std::string &name) override
Acquire a certain resource. 
std::map< size_t, concurrentQueueIAlgPtr * > m_algqueue_map
Base class from which all concrete algorithm classes should be derived. 
StatusCode decodeTopAlgs()
Decode the top alg list. 
Base class used to extend a class implementing other interfaces. 
StatusCode acquireAlgorithm(const std::string &name, IAlgorithm *&algo, bool blocking=false) override
Acquire a certain algorithm using its name. 
std::map< size_t, unsigned int > m_n_of_created_instances
StatusCode initialize() override
ListAlg m_topAlgList
The list of top algorithms. 
std::map< size_t, size_t > m_n_of_allowed_instances
ListAlg m_algList
The list of all algorithms created withing the Pool which are not top. 
StatusCode releaseAlgorithm(const std::string &name, IAlgorithm *&algo) override
Release a certain algorithm. 
Gaudi::Property< bool > m_lazyCreation