The Gaudi Framework  master (37c0b60a)
IAlgResourcePool.h
Go to the documentation of this file.
1 /***********************************************************************************\
2 * (c) Copyright 1998-2024 CERN for the benefit of the LHCb and ATLAS collaborations *
3 * *
4 * This software is distributed under the terms of the Apache version 2 licence, *
5 * copied verbatim in the file "LICENSE". *
6 * *
7 * In applying this licence, CERN does not waive the privileges and immunities *
8 * granted to it by virtue of its status as an Intergovernmental Organization *
9 * or submit itself to any jurisdiction. *
10 \***********************************************************************************/
11 #ifndef GAUDIKERNEL_IALGRESOURCEPOOL_H
12 #define GAUDIKERNEL_IALGRESOURCEPOOL_H
13 
14 // Framework includes
15 #include <GaudiKernel/IInterface.h>
16 
17 // C++ includes
18 #include <list>
19 #include <string_view>
20 
21 // Forward class declaration
22 class IAlgorithm;
23 
36 class GAUDI_API IAlgResourcePool : virtual public IInterface {
37 public:
40 
42  virtual StatusCode acquireAlgorithm( std::string_view name, IAlgorithm*& algo, bool blocking = false ) = 0;
44  virtual StatusCode releaseAlgorithm( std::string_view name, IAlgorithm*& algo ) = 0;
45 
48 
51 
53  virtual StatusCode acquireResource( std::string_view name ) = 0;
55  virtual StatusCode releaseResource( std::string_view name ) = 0;
56 };
57 
58 #endif // GAUDIKERNEL_IALGRESOURCEPOOL_H
IAlgResourcePool
Definition: IAlgResourcePool.h:36
std::list< IAlgorithm * >
IAlgResourcePool::getFlatAlgList
virtual std::list< IAlgorithm * > getFlatAlgList()=0
Get the flat list of algorithms.
IAlgResourcePool::DeclareInterfaceID
DeclareInterfaceID(IAlgResourcePool, 1, 0)
InterfaceID.
IAlgResourcePool::acquireResource
virtual StatusCode acquireResource(std::string_view name)=0
Acquire a certain resource.
StatusCode
Definition: StatusCode.h:65
IInterface.h
IAlgorithm
Definition: IAlgorithm.h:38
IAlgResourcePool::releaseAlgorithm
virtual StatusCode releaseAlgorithm(std::string_view name, IAlgorithm *&algo)=0
Release a certain algorithm.
IAlgResourcePool::acquireAlgorithm
virtual StatusCode acquireAlgorithm(std::string_view name, IAlgorithm *&algo, bool blocking=false)=0
Acquire a certain algorithm using its name.
IAlgResourcePool::releaseResource
virtual StatusCode releaseResource(std::string_view name)=0
Release a certrain resource.
ConditionsStallTest.name
name
Definition: ConditionsStallTest.py:77
IInterface
Definition: IInterface.h:239
IAlgResourcePool::getTopAlgList
virtual std::list< IAlgorithm * > getTopAlgList()=0
Get top list of algorithms.
GAUDI_API
#define GAUDI_API
Definition: Kernel.h:81