| # Gaudi Framework, version v20r4
Generated: 8 Jan 2009

# 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
    00011 #include <iosfwd>
    00012 #include <string>
    00013 #include <typeinfo>
    00014 #include <vector>
    00015
    00016 class Algorithm;
    00017 class Property;
    00018 class JobHistory;
    00019
    00028 class AlgorithmHistory: public HistoryObj {
    00029
    00030 public:  // typedefs
    00031
    00032   // List of properties. This may change.
    00033   typedef std::vector<Property*> PropertyList;
    00034
    00035   // List of subalgorithm histories. This may change.
    00036   typedef std::vector<const AlgorithmHistory*> HistoryList;
    00037
    00038 private:  // data
    00039
    00040   // Algorithm full type.
    00041   std::string m_algorithm_type;
    00042
    00043   // Algorithm version.
    00044   std::string m_algorithm_version;
    00045
    00046   // Algorithm name.
    00047   std::string m_algorithm_name;
    00048
    00049   // Algorithm
    00050   const Algorithm* m_algorithm;
    00051
    00052   // Properties.
    00053   PropertyList m_properties;
    00054
    00055   // Subalgorithm histories.
    00056   HistoryList m_subalgorithm_histories;
    00057
    00058   // Link to jobHistory
    00059   const JobHistory *m_jobHistory;
    00060
    00061 public:  // functions
    00062
    00063   // Constructor from the algorithm.
    00064   explicit AlgorithmHistory(const Algorithm& alg, const JobHistory* job);
    00065
    00066   // All-fields Constructor for persistency
    00067   explicit AlgorithmHistory(const std::string& algVersion,
    00068                             const std::string& algName,
    00069                             const std::string& algType,
    00070                             const PropertyList& props,
    00071                             const HistoryList& subHists);
    00072   // Destructor.
    00073   virtual ~AlgorithmHistory();
    00074
    00075   // Class IDs
    00076   virtual const CLID& clID() const { return classID(); }
    00077   static const CLID& classID();
    00078
    00079   // Return the algorithm type.
    00080   const std::string& algorithm_type() const { return m_algorithm_type; }
    00081
    00082   // Return the algorithm version.
    00083   const std::string& algorithm_version() const { return m_algorithm_version; }
    00084
    00085   // Return the algorithm name.
    00086   const std::string& algorithm_name() const { return m_algorithm_name; }
    00087
    00088   // The actual algorithm
    00089   const Algorithm* algorithm() const { return m_algorithm; }
    00090
    00091   // Return the algorithm properties.
    00092   const PropertyList& properties() const { return m_properties; }
    00093
    00094   // Return the subalgorithm histories.
    00095   const HistoryList& subalgorithm_histories() const
    00096     { return m_subalgorithm_histories; }
    00097
    00098   // Return the jobHistory
    00099   const JobHistory* jobHistory() const { return m_jobHistory; }
    00100
    00101 };
    00102
    00103 // Output stream.
    00104 std::ostream& operator<<(std::ostream& lhs, const AlgorithmHistory& rhs);
    00105
    00106 #endif