00001 // $Header: /local/reps/Gaudi/GaudiKernel/GaudiKernel/IHistorySvc.h,v 1.1 2004/07/14 18:13:57 leggett Exp $ 00002 00003 #ifndef GAUDIKERNEL_IHISTORYSVC_H 00004 #define GAUDIKERNEL_IHISTORYSVC_H 00005 00006 00007 #include "GaudiKernel/IService.h" 00008 #include "GaudiKernel/ClassID.h" 00009 00010 #include <string> 00011 #include <set> 00012 00013 class JobHistory; 00014 00015 class ServiceHistory; 00016 class IService; 00017 00018 class Algorithm; 00019 class AlgorithmHistory; 00020 00021 class IAlgTool; 00022 class AlgToolHistory; 00023 00024 class DataHistory; 00025 class HistoryObj; 00026 00034 class IHistorySvc : virtual public IService { 00035 00036 public: 00037 // Typedefs for container type 00038 00040 static const InterfaceID& interfaceID(); 00041 00042 00043 // Job level objects 00044 virtual StatusCode registerJob() = 0; 00045 virtual StatusCode listProperties() const = 0; 00046 virtual JobHistory* getJobHistory() const = 0; 00047 00048 // Service level objects 00049 virtual StatusCode registerSvc(const IService&) = 0; 00050 virtual StatusCode listProperties(const IService&) const = 0; 00051 virtual ServiceHistory* getServiceHistory(const IService&) const = 0; 00052 virtual void getServiceHistory(std::set<ServiceHistory*>&) const = 0; 00053 00054 // Algorithm level objects 00055 virtual StatusCode registerAlg(const Algorithm&) = 0; 00056 virtual StatusCode listProperties(const Algorithm&) const = 0; 00057 virtual AlgorithmHistory* getAlgHistory(const Algorithm&) const = 0; 00058 virtual void getAlgHistory(std::set<AlgorithmHistory*>&) const = 0; 00059 00060 // AlgTool level objects 00061 virtual StatusCode registerAlgTool(const IAlgTool&) = 0; 00062 virtual StatusCode listProperties(const IAlgTool&) const = 0; 00063 virtual AlgToolHistory* getAlgToolHistory(const IAlgTool&) const = 0; 00064 virtual void getAlgToolHistory(std::set<AlgToolHistory*>&) const = 0; 00065 00066 // DataObj level objects 00067 virtual DataHistory* createDataHistoryObj(const CLID& id, 00068 const std::string& key, 00069 const std::string& storeName) = 0; 00070 virtual DataHistory* getDataHistory(const CLID& id, const std::string& key, 00071 const std::string& storeName) const = 0; 00072 00073 00074 00075 }; 00076 00077 inline 00078 const InterfaceID& 00079 IHistorySvc::interfaceID() { 00080 static const InterfaceID m_IID("HistorySvc", 1, 0); 00081 return m_IID; 00082 } 00083 00084 #endif // GAUDIKERNEL_IHISTORYSVC_H