![]() |
|
|||
File indexing completed on 2025-02-21 10:00:30
0001 /***********************************************************************************\ 0002 * (c) Copyright 1998-2019 CERN for the benefit of the LHCb and ATLAS collaborations * 0003 * * 0004 * This software is distributed under the terms of the Apache version 2 licence, * 0005 * copied verbatim in the file "LICENSE". * 0006 * * 0007 * In applying this licence, CERN does not waive the privileges and immunities * 0008 * granted to it by virtue of its status as an Intergovernmental Organization * 0009 * or submit itself to any jurisdiction. * 0010 \***********************************************************************************/ 0011 #ifndef GAUDIKERNEL_IDATABROKER_H 0012 #define GAUDIKERNEL_IDATABROKER_H 0013 0014 // Framework includes 0015 #include "GaudiKernel/DataObjID.h" 0016 #include "GaudiKernel/IInterface.h" 0017 #include "GaudiKernel/TypeNameString.h" 0018 0019 // C++ includes 0020 #include <string> 0021 #include <vector> 0022 0023 // Forward class declaration 0024 namespace Gaudi { 0025 class Algorithm; 0026 } 0027 0028 /** @class IAlgResourcePool IAlgResourcePool.h GaudiKernel/IAlgResourcePool.h 0029 0030 The IDataBroker interface provides an ordered list of algorithms that 0031 are to be executed in order for the provided DataObjID to be produced. 0032 Note that this list is both neccessary and sufficient, in the sense that 0033 in the absence of errors encountered during the execution, there will be 0034 an item at DataObjID after executing this sequence. 0035 0036 The actual creation and deletion of algorithm instances implied by this 0037 interface is assumed to implemented through the IAlgManager service. 0038 0039 @author Gerhard Raven 0040 @version 1.0 0041 */ 0042 struct GAUDI_API IDataBroker : extend_interfaces<IInterface> { 0043 /// InterfaceID 0044 DeclareInterfaceID( IDataBroker, 1, 0 ); 0045 0046 /// Get the (ordered!) list of algorithms required to provide a given DataObjIDColl 0047 virtual std::vector<Gaudi::Algorithm*> 0048 algorithmsRequiredFor( const DataObjIDColl& requested, const std::vector<std::string>& stoppers = {} ) const = 0; 0049 0050 /// Get the (ordered!) list of algorithms required to succesfully execute (as far as data dependencies go) 0051 /// the specified algorithm 0052 virtual std::vector<Gaudi::Algorithm*> 0053 algorithmsRequiredFor( const Gaudi::Utils::TypeNameString& alg, 0054 const std::vector<std::string>& stoppers = {} ) const = 0; 0055 }; 0056 0057 #endif // GAUDIKERNEL_IDATABROKER
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
![]() ![]() |