| # Gaudi Framework, version v23r1 |

Home |  | Generated: Wed Feb 29 2012

# 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