00001 // $Id: AlgToolHistory.h,v 1.1 2006/11/09 10:24:04 mato Exp $ 00002 00003 #ifndef GAUDIKERNEL_ALGTOOLHISTORY_H 00004 #define GAUDIKERNEL_ALGTOOLHISTORY_H 00005 00006 #include "GaudiKernel/HistoryObj.h" 00007 00008 class Property; 00009 class AlgTool; 00010 class JobHistory; 00011 00012 #include <string> 00013 #include <vector> 00014 00023 class AlgToolHistory: public HistoryObj { 00024 00025 public: // typedefs 00026 00027 // List of properties. This may change. 00028 typedef std::vector<Property*> PropertyList; 00029 00030 private: // data 00031 00032 // Algtool full type. 00033 std::string m_type; 00034 00035 // Algtool version. 00036 std::string m_version; 00037 00038 // Algtool name. 00039 std::string m_name; 00040 00041 // Pointer to the algtool 00042 const AlgTool *m_tool; 00043 00044 // Properties. 00045 PropertyList m_properties; 00046 00047 // Link to jobHistory 00048 const JobHistory *m_jobHistory; 00049 00050 public: 00051 00052 AlgToolHistory(const AlgTool& alg, const JobHistory* job); 00053 00054 AlgToolHistory(const std::string& algVersion, 00055 const std::string& algName, 00056 const std::string& algType, 00057 const AlgTool* tool, 00058 const PropertyList& props, 00059 const JobHistory* job); 00060 00061 // Destructor. 00062 virtual ~AlgToolHistory() {}; 00063 00064 // Class IDs 00065 virtual const CLID& clID() const { return classID(); } 00066 static const CLID& classID(); 00067 00068 // Return the algtool type. 00069 const std::string& algtool_type() const { return m_type; } 00070 00071 // Return the algtool version. 00072 const std::string& algtool_version() const { return m_version; } 00073 00074 // Return the algtool name. 00075 const std::string& algtool_name() const { return m_name; } 00076 00077 // Pointer to the algtool 00078 const AlgTool* algtool_instance() const { return m_tool; } 00079 00080 // Return the algorithm properties. 00081 const PropertyList& properties() const { return m_properties; } 00082 00083 }; 00084 00085 // Output stream. 00086 std::ostream& operator<<(std::ostream& lhs, const AlgToolHistory& rhs); 00087 00088 #endif 00089