Gaudi Framework, version v22r4

Home   Generated: Fri Sep 2 2011

AlgorithmHistory.h

Go to the documentation of this file.
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
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines

Generated at Fri Sep 2 2011 16:24:17 for Gaudi Framework, version v22r4 by Doxygen version 1.7.2 written by Dimitri van Heesch, © 1997-2004