![]() |
The Gaudi Framework
v30r3 (a5ef0a68)
|
The AlgResourcePool is a concrete implementation of the IAlgResourcePool interface. More...
#include <GaudiHive/AlgResourcePool.h>
Public Member Functions | |
~AlgResourcePool () override | |
StatusCode | start () override |
StatusCode | initialize () override |
StatusCode | acquireAlgorithm (const std::string &name, IAlgorithm *&algo, bool blocking=false) override |
Acquire a certain algorithm using its name. More... | |
StatusCode | releaseAlgorithm (const std::string &name, IAlgorithm *&algo) override |
Release a certain algorithm. More... | |
StatusCode | acquireResource (const std::string &name) override |
Acquire a certain resource. More... | |
StatusCode | releaseResource (const std::string &name) override |
Release a certrain resource. More... | |
std::list< IAlgorithm * > | getFlatAlgList () override |
std::list< IAlgorithm * > | getTopAlgList () override |
StatusCode | stop () override |
![]() | |
void * | i_cast (const InterfaceID &tid) const override |
Implementation of IInterface::i_cast. More... | |
StatusCode | queryInterface (const InterfaceID &ti, void **pp) override |
Implementation of IInterface::queryInterface. More... | |
std::vector< std::string > | getInterfaceNames () const override |
Implementation of IInterface::getInterfaceNames. More... | |
![]() | |
const std::string & | name () const override |
Retrieve name of the service. More... | |
StatusCode | configure () override |
StatusCode | initialize () override |
StatusCode | start () override |
StatusCode | stop () override |
StatusCode | finalize () override |
StatusCode | terminate () override |
Gaudi::StateMachine::State | FSMState () const override |
Gaudi::StateMachine::State | targetFSMState () const override |
StatusCode | reinitialize () override |
StatusCode | restart () override |
StatusCode | sysInitialize () override |
Initialize Service. More... | |
StatusCode | sysStart () override |
Initialize Service. More... | |
StatusCode | sysStop () override |
Initialize Service. More... | |
StatusCode | sysFinalize () override |
Finalize Service. More... | |
StatusCode | sysReinitialize () override |
Re-initialize the Service. More... | |
StatusCode | sysRestart () override |
Re-initialize the Service. More... | |
Service (std::string name, ISvcLocator *svcloc) | |
Standard Constructor. More... | |
SmartIF< ISvcLocator > & | serviceLocator () const override |
Retrieve pointer to service locator. More... | |
StatusCode | setProperties () |
Method for setting declared properties to the values specified for the job. More... | |
template<class T > | |
StatusCode | service (const std::string &name, const T *&psvc, bool createIf=true) const |
Access a service by name, creating it if it doesn't already exist. More... | |
template<class T > | |
StatusCode | service (const std::string &name, T *&psvc, bool createIf=true) const |
template<typename IFace = IService> | |
SmartIF< IFace > | service (const std::string &name, bool createIf=true) const |
template<class T > | |
StatusCode | service (const std::string &svcType, const std::string &svcName, T *&psvc) const |
Access a service by name and type, creating it if it doesn't already exist. More... | |
template<class T > | |
StatusCode | declareTool (ToolHandle< T > &handle, std::string toolTypeAndName, bool createIf=true) |
Declare used tool. More... | |
SmartIF< IAuditorSvc > & | auditorSvc () const |
The standard auditor service.May not be invoked before sysInitialize() has been invoked. More... | |
![]() | |
PropertyHolder ()=default | |
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Details::PropertyBase &prop) |
Declare a property. More... | |
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, TYPE &value, const std::string &doc="none") |
Helper to wrap a regular data member and use it as a regular property. More... | |
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, Gaudi::Property< TYPE, VERIFIER, HANDLERS > &prop, const std::string &doc="none") |
Declare a PropertyBase instance setting name and documentation. More... | |
Gaudi::Details::PropertyBase * | declareRemoteProperty (const std::string &name, IProperty *rsvc, const std::string &rname="") |
Declare a remote property. More... | |
StatusCode | setProperty (const Gaudi::Details::PropertyBase &p) override |
set the property form another property More... | |
StatusCode | setProperty (const std::string &s) override |
set the property from the formatted string More... | |
StatusCode | setProperty (const std::string &n, const std::string &v) override |
set the property from name and the value More... | |
StatusCode | setProperty (const std::string &name, const TYPE &value) |
set the property form the value More... | |
StatusCode | getProperty (Gaudi::Details::PropertyBase *p) const override |
get the property More... | |
const Gaudi::Details::PropertyBase & | getProperty (const std::string &name) const override |
get the property by name More... | |
StatusCode | getProperty (const std::string &n, std::string &v) const override |
convert the property to the string More... | |
const std::vector< Gaudi::Details::PropertyBase * > & | getProperties () const override |
get all properties More... | |
bool | hasProperty (const std::string &name) const override |
Return true if we have a property with the given name. More... | |
PropertyHolder (const PropertyHolder &)=delete | |
PropertyHolder & | operator= (const PropertyHolder &)=delete |
![]() | |
MSG::Level | msgLevel () const |
get the cached level (originally extracted from the embedded MsgStream) More... | |
bool | msgLevel (MSG::Level lvl) const |
get the output level from the embedded MsgStream More... | |
MSG::Level | outputLevel () const |
Backward compatibility function for getting the output level. More... | |
![]() | |
virtual | ~CommonMessagingBase ()=default |
Virtual destructor. More... | |
const SmartIF< IMessageSvc > & | msgSvc () const |
The standard message service. More... | |
MsgStream & | msgStream () const |
Return an uninitialized MsgStream. More... | |
MsgStream & | msgStream (const MSG::Level level) const |
Predefined configurable message stream for the efficient printouts. More... | |
MsgStream & | always () const |
shortcut for the method msgStream(MSG::ALWAYS) More... | |
MsgStream & | fatal () const |
shortcut for the method msgStream(MSG::FATAL) More... | |
MsgStream & | err () const |
shortcut for the method msgStream(MSG::ERROR) More... | |
MsgStream & | error () const |
shortcut for the method msgStream(MSG::ERROR) More... | |
MsgStream & | warning () const |
shortcut for the method msgStream(MSG::WARNING) More... | |
MsgStream & | info () const |
shortcut for the method msgStream(MSG::INFO) More... | |
MsgStream & | debug () const |
shortcut for the method msgStream(MSG::DEBUG) More... | |
MsgStream & | verbose () const |
shortcut for the method msgStream(MSG::VERBOSE) More... | |
MsgStream & | msg () const |
shortcut for the method msgStream(MSG::INFO) More... | |
Private Types | |
typedef tbb::concurrent_bounded_queue< IAlgorithm * > | concurrentQueueIAlgPtr |
typedef std::list< SmartIF< IAlgorithm > > | ListAlg |
typedef boost::dynamic_bitset | state_type |
Private Member Functions | |
StatusCode | decodeTopAlgs () |
Decode the top alg list. More... | |
StatusCode | flattenSequencer (Algorithm *sequencer, ListAlg &alglist, unsigned int recursionDepth=0) |
Recursively flatten an algList. More... | |
Private Attributes | |
std::mutex | m_resource_mutex |
state_type | m_available_resources {0} |
std::map< size_t, concurrentQueueIAlgPtr * > | m_algqueue_map |
std::map< size_t, state_type > | m_resource_requirements |
std::map< size_t, size_t > | m_n_of_allowed_instances |
std::map< size_t, unsigned int > | m_n_of_created_instances |
std::map< std::string, unsigned int > | m_resource_indices |
Gaudi::Property< bool > | m_lazyCreation {this, "CreateLazily", false, ""} |
Gaudi::Property< std::vector< std::string > > | m_topAlgNames |
Gaudi::Property< bool > | m_overrideUnClonable |
ListAlg | m_algList |
The list of all algorithms created withing the Pool which are not top. More... | |
ListAlg | m_topAlgList |
The list of top algorithms. More... | |
ListAlg | m_flatUniqueAlgList |
The flat list of algorithms w/o clones. More... | |
std::list< IAlgorithm * > | m_flatUniqueAlgPtrList |
The flat list of algorithms w/o clones which is returned. More... | |
std::list< IAlgorithm * > | m_topAlgPtrList |
The top list of algorithms. More... | |
Additional Inherited Members | |
![]() | |
using | base_class = extends |
Typedef to this class. More... | |
using | extend_interfaces_base = extend_interfaces< Interfaces... > |
Typedef to the base of this class. More... | |
![]() | |
using | Factory = Gaudi::PluginService::Factory< IService *(const std::string &, ISvcLocator *)> |
![]() | |
using | PropertyHolderImpl = PropertyHolder< CommonMessaging< implements< IService, IProperty, IStateful > > > |
Typedef used to refer to this class from derived classes, as in. More... | |
![]() | |
using | base_class = CommonMessaging |
![]() | |
using | ext_iids = typename Gaudi::interface_list_cat< typename Interfaces::ext_iids... >::type |
take union of the ext_iids of all Interfaces... More... | |
![]() | |
~Service () override | |
Standard Destructor. More... | |
int | outputLevel () const |
get the Service's output level More... | |
![]() | |
Gaudi::Details::PropertyBase * | property (const std::string &name) const |
![]() | |
MSG::Level | setUpMessaging () const |
Set up local caches. More... | |
MSG::Level | resetMessaging () |
Reinitialize internal states. More... | |
void | updateMsgStreamOutputLevel (int level) |
Update the output level of the cached MsgStream. More... | |
![]() | |
Gaudi::StateMachine::State | m_state = Gaudi::StateMachine::OFFLINE |
Service state. More... | |
Gaudi::StateMachine::State | m_targetState = Gaudi::StateMachine::OFFLINE |
Service state. More... | |
Gaudi::Property< int > | m_outputLevel {this, "OutputLevel", MSG::NIL, "output level"} |
Gaudi::Property< bool > | m_auditInit {this, "AuditServices", false, "[[deprecated]] unused"} |
Gaudi::Property< bool > | m_auditorInitialize {this, "AuditInitialize", false, "trigger auditor on initialize()"} |
Gaudi::Property< bool > | m_auditorStart {this, "AuditStart", false, "trigger auditor on start()"} |
Gaudi::Property< bool > | m_auditorStop {this, "AuditStop", false, "trigger auditor on stop()"} |
Gaudi::Property< bool > | m_auditorFinalize {this, "AuditFinalize", false, "trigger auditor on finalize()"} |
Gaudi::Property< bool > | m_auditorReinitialize {this, "AuditReinitialize", false, "trigger auditor on reinitialize()"} |
Gaudi::Property< bool > | m_auditorRestart {this, "AuditRestart", false, "trigger auditor on restart()"} |
SmartIF< IAuditorSvc > | m_pAuditorSvc |
Auditor Service. More... | |
The AlgResourcePool is a concrete implementation of the IAlgResourcePool interface.
It either creates all instances upfront or lazily. Internal bookkeeping is done via hashes of the algo names.
Definition at line 29 of file AlgResourcePool.h.
|
private |
Definition at line 54 of file AlgResourcePool.h.
|
private |
Definition at line 55 of file AlgResourcePool.h.
|
private |
Definition at line 56 of file AlgResourcePool.h.
|
override |
Definition at line 20 of file AlgResourcePool.cpp.
|
override |
Acquire a certain algorithm using its name.
Definition at line 75 of file AlgResourcePool.cpp.
|
override |
Acquire a certain resource.
Definition at line 154 of file AlgResourcePool.cpp.
|
private |
Decode the top alg list.
Definition at line 213 of file AlgResourcePool.cpp.
|
private |
Recursively flatten an algList.
Definition at line 174 of file AlgResourcePool.cpp.
|
override |
Definition at line 364 of file AlgResourcePool.cpp.
|
override |
Definition at line 374 of file AlgResourcePool.cpp.
|
override |
Definition at line 32 of file AlgResourcePool.cpp.
|
override |
Release a certain algorithm.
Definition at line 134 of file AlgResourcePool.cpp.
|
override |
Release a certrain resource.
Definition at line 164 of file AlgResourcePool.cpp.
|
override |
Definition at line 56 of file AlgResourcePool.cpp.
|
override |
Definition at line 383 of file AlgResourcePool.cpp.
|
private |
The list of all algorithms created withing the Pool which are not top.
Definition at line 80 of file AlgResourcePool.h.
|
private |
Definition at line 61 of file AlgResourcePool.h.
|
private |
Definition at line 60 of file AlgResourcePool.h.
|
private |
The flat list of algorithms w/o clones.
Definition at line 86 of file AlgResourcePool.h.
|
private |
The flat list of algorithms w/o clones which is returned.
Definition at line 89 of file AlgResourcePool.h.
|
private |
Definition at line 73 of file AlgResourcePool.h.
|
private |
Definition at line 63 of file AlgResourcePool.h.
|
private |
Definition at line 64 of file AlgResourcePool.h.
|
private |
Definition at line 76 of file AlgResourcePool.h.
|
private |
Definition at line 65 of file AlgResourcePool.h.
|
private |
Definition at line 58 of file AlgResourcePool.h.
|
private |
Definition at line 62 of file AlgResourcePool.h.
|
private |
The list of top algorithms.
Definition at line 83 of file AlgResourcePool.h.
|
private |
Definition at line 74 of file AlgResourcePool.h.
|
private |
The top list of algorithms.
Definition at line 92 of file AlgResourcePool.h.