Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-02-21 10:00:31

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_IHISTORYSVC_H
0012 #define GAUDIKERNEL_IHISTORYSVC_H
0013 
0014 #include "GaudiKernel/ClassID.h"
0015 #include "GaudiKernel/IService.h"
0016 
0017 #include <set>
0018 #include <string>
0019 
0020 class JobHistory;
0021 
0022 class ServiceHistory;
0023 class IService;
0024 
0025 namespace Gaudi {
0026   class Algorithm;
0027 }
0028 class AlgorithmHistory;
0029 
0030 class IAlgTool;
0031 class AlgToolHistory;
0032 
0033 class DataHistory;
0034 class HistoryObj;
0035 
0036 /** @class IHistorySvc IHistorySvc.h GaudiKernel/IHistorySvc.h
0037 
0038     Definition of the IHistorySvc interface class
0039 
0040     @author Charles Leggett
0041 */
0042 
0043 class GAUDI_API IHistorySvc : virtual public IService {
0044 public:
0045   /// InterfaceID
0046   DeclareInterfaceID( IHistorySvc, 2, 0 );
0047 
0048   // Job level objects
0049   virtual StatusCode  registerJob()          = 0;
0050   virtual StatusCode  listProperties() const = 0;
0051   virtual JobHistory* getJobHistory() const  = 0;
0052 
0053   // Service level objects
0054   virtual StatusCode      registerSvc( const IService& )                        = 0;
0055   virtual StatusCode      listProperties( const IService& ) const               = 0;
0056   virtual ServiceHistory* getServiceHistory( const IService& ) const            = 0;
0057   virtual void            getServiceHistory( std::set<ServiceHistory*>& ) const = 0;
0058 
0059   // Algorithm level objects
0060   virtual StatusCode        registerAlg( const Gaudi::Algorithm& )              = 0;
0061   virtual StatusCode        listProperties( const Gaudi::Algorithm& ) const     = 0;
0062   virtual AlgorithmHistory* getAlgHistory( const Gaudi::Algorithm& ) const      = 0;
0063   virtual void              getAlgHistory( std::set<AlgorithmHistory*>& ) const = 0;
0064 
0065   // AlgTool level objects
0066   virtual StatusCode      registerAlgTool( const IAlgTool& )                    = 0;
0067   virtual StatusCode      listProperties( const IAlgTool& ) const               = 0;
0068   virtual AlgToolHistory* getAlgToolHistory( const IAlgTool& ) const            = 0;
0069   virtual void            getAlgToolHistory( std::set<AlgToolHistory*>& ) const = 0;
0070 
0071   // DataObj level objects
0072   virtual DataHistory* createDataHistoryObj( const CLID& id, const std::string& key, const std::string& storeName ) = 0;
0073   virtual DataHistory* getDataHistory( const CLID& id, const std::string& key, const std::string& storeName ) const = 0;
0074 };
0075 
0076 #endif // GAUDIKERNEL_IHISTORYSVC_H