|
Gaudi Framework, version v22r4 |
| Home | Generated: Fri Sep 2 2011 |
00001 // $Id: AlgorithmHistory.h,v 1.1 2006/11/09 10:24:04 mato Exp $ 00002 00003 #ifndef GAUDIKERNEL_ALGORITHMHISTORY_H 00004 #define GAUDIKERNEL_ALGORITHMHISTORY_H 00005 00006 // An object of this class carries the history information 00007 // which is specific to a Gaudi algorithm. 00008 00009 #include "GaudiKernel/HistoryObj.h" 00010 #include "GaudiKernel/IVersHistoryObj.h" 00011 00012 #include <iosfwd> 00013 #include <string> 00014 #include <typeinfo> 00015 #include <vector> 00016 00017 class Algorithm; 00018 class Property; 00019 class JobHistory; 00020 00029 class GAUDI_API AlgorithmHistory: public HistoryObj, virtual public IVersHistoryObj { 00030 00031 public: // typedefs 00032 00033 // List of subalgorithm histories. This may change. 00034 typedef std::vector<const AlgorithmHistory*> HistoryList; 00035 00036 private: // data 00037 00038 // Algorithm full type. 00039 std::string m_algorithm_type; 00040 00041 // Algorithm version. 00042 std::string m_algorithm_version; 00043 00044 // Algorithm name. 00045 std::string m_algorithm_name; 00046 00047 // Algorithm 00048 const Algorithm* m_algorithm; 00049 00050 // Properties. 00051 PropertyList m_properties; 00052 00053 // Subalgorithm histories. 00054 HistoryList m_subalgorithm_histories; 00055 00056 // Link to jobHistory 00057 const JobHistory *m_jobHistory; 00058 00059 public: // functions 00060 00061 // Constructor from the algorithm. 00062 explicit AlgorithmHistory(const Algorithm& alg, const JobHistory* job); 00063 00064 // All-fields Constructor for persistency 00065 explicit AlgorithmHistory(const std::string& algVersion, 00066 const std::string& algName, 00067 const std::string& algType, 00068 const PropertyList& props, 00069 const HistoryList& subHists); 00070 // Destructor. 00071 virtual ~AlgorithmHistory(); 00072 00073 // Class IDs 00074 virtual const CLID& clID() const { return classID(); } 00075 static const CLID& classID(); 00076 00077 // Return the algorithm type. 00078 const std::string& algorithm_type() const { return m_algorithm_type; } 00079 00080 // Return the algorithm version. 00081 const std::string& algorithm_version() const { return m_algorithm_version; } 00082 00083 // Return the algorithm name. 00084 const std::string& algorithm_name() const { return m_algorithm_name; } 00085 00086 // The actual algorithm 00087 const Algorithm* algorithm() const { return m_algorithm; } 00088 00089 // Return the algorithm properties. 00090 const PropertyList& properties() const { return m_properties; } 00091 00092 // Return the subalgorithm histories. 00093 const HistoryList& subalgorithm_histories() const 00094 { return m_subalgorithm_histories; } 00095 00096 // Return the jobHistory 00097 const JobHistory* jobHistory() const { return m_jobHistory; } 00098 00099 00100 void dump(std::ostream &, const bool isXML=false, int indent=0) const; 00101 00102 const std::string& name() const { return algorithm_name(); } 00103 const std::string& type() const { return algorithm_type(); } 00104 const std::string& version() const { return algorithm_version(); } 00105 00106 }; 00107 00108 // Output stream. 00109 GAUDI_API std::ostream& operator<<(std::ostream& lhs, const AlgorithmHistory& rhs); 00110 00111 #endif