All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
AlgorithmHistory Class Reference

AlgorithmHistory class definition. More...

#include <GaudiKernel/AlgorithmHistory.h>

Inheritance diagram for AlgorithmHistory:
Collaboration diagram for AlgorithmHistory:

Public Types

typedef std::vector< const
AlgorithmHistory * > 
HistoryList
 
- Public Types inherited from IVersHistoryObj
typedef std::vector< Property * > PropertyList
 

Public Member Functions

 AlgorithmHistory (const Algorithm &alg, const JobHistory *job)
 
 AlgorithmHistory (const std::string &algVersion, const std::string &algName, const std::string &algType, const PropertyList &props, const HistoryList &subHists)
 
virtual ~AlgorithmHistory ()
 
virtual const CLIDclID () const
 Retrieve reference to class definition structure. More...
 
const std::string & algorithm_type () const
 
const std::string & algorithm_version () const
 
const std::string & algorithm_name () const
 
const Algorithmalgorithm () const
 
const PropertyListproperties () const
 
const HistoryListsubalgorithm_histories () const
 
const JobHistoryjobHistory () const
 
void dump (std::ostream &, const bool isXML=false, int indent=0) const
 
const std::string & name () const
 
const std::string & type () const
 
const std::string & version () const
 
- Public Member Functions inherited from HistoryObj
 HistoryObj ()
 
virtual ~HistoryObj ()
 
- Public Member Functions inherited from DataObject
 DataObject ()
 Standard Constructor. More...
 
 DataObject (const DataObject &)
 Copy Constructor. More...
 
virtual ~DataObject ()
 Standard Destructor. More...
 
virtual unsigned long addRef ()
 Add reference to object. More...
 
virtual unsigned long release ()
 release reference to object More...
 
const std::string & name () const
 Retreive DataObject name. It is the name when registered in the store. More...
 
virtual StatusCode update ()
 Provide empty placeholder for internal object reconfiguration callback. More...
 
void setRegistry (IRegistry *pRegistry)
 Set pointer to Registry. More...
 
IRegistryregistry () const
 Get pointer to Registry. More...
 
LinkManagerlinkMgr () const
 Retrieve Link manager. More...
 
unsigned char version () const
 Retrieve version number of this object representation. More...
 
void setVersion (unsigned char vsn)
 Set version number of this object representation. More...
 
unsigned long refCount () const
 Return the refcount. More...
 
virtual std::ostream & fillStream (std::ostream &s) const
 Fill the output stream (ASCII) More...
 
- Public Member Functions inherited from IVersHistoryObj
virtual ~IVersHistoryObj ()
 

Static Public Member Functions

static const CLIDclassID ()
 
- Static Public Member Functions inherited from HistoryObj
static const CLIDclassID ()
 
static std::string convert_string (const std::string &)
 
- Static Public Member Functions inherited from DataObject
static const CLIDclassID ()
 Retrieve reference to class definition structure (static access) More...
 

Private Attributes

std::string m_algorithm_type
 
std::string m_algorithm_version
 
std::string m_algorithm_name
 
const Algorithmm_algorithm
 
PropertyList m_properties
 
HistoryList m_subalgorithm_histories
 
const JobHistorym_jobHistory
 

Additional Inherited Members

- Protected Member Functions inherited from HistoryObj
virtual void indent (std::ostream &, int) const
 

Detailed Description

AlgorithmHistory class definition.

Author
: Charles Leggett

Definition at line 29 of file AlgorithmHistory.h.

Member Typedef Documentation

typedef std::vector<const AlgorithmHistory*> AlgorithmHistory::HistoryList

Definition at line 34 of file AlgorithmHistory.h.

Constructor & Destructor Documentation

AlgorithmHistory::AlgorithmHistory ( const Algorithm alg,
const JobHistory job 
)
explicit

Definition at line 32 of file AlgorithmHistory.cpp.

33 :
36  m_algorithm_name(alg.name()),
37  m_algorithm( &alg ),
39  m_jobHistory(job)
40 {
41  assert( alg.subAlgorithms() != 0 );
42 
43  for ( vector<Algorithm*>::const_iterator
44  ialg=alg.subAlgorithms()->begin();
45  ialg!=alg.subAlgorithms()->end(); ++ ialg ) {
46  m_subalgorithm_histories.push_back(new AlgorithmHistory(**ialg, job));
47  }
48 }
std::vector< Algorithm * > * subAlgorithms() const
List of sub-algorithms. Returns a pointer to a vector of (sub) Algorithms.
Definition: Algorithm.cpp:870
GAUDI_API const std::string typeinfoName(const std::type_info &)
Get platform independent information about the class type.
Definition: System.cpp:298
std::string m_algorithm_type
std::string m_algorithm_version
HistoryList m_subalgorithm_histories
virtual const std::string & version() const
The version of the algorithm.
Definition: Algorithm.cpp:841
PropertyList m_properties
const Algorithm * m_algorithm
virtual const std::string & name() const
The identifying name of the algorithm object.
Definition: Algorithm.cpp:837
std::string m_algorithm_name
AlgorithmHistory(const Algorithm &alg, const JobHistory *job)
const JobHistory * m_jobHistory
virtual const std::vector< Property * > & getProperties() const
Implementation of IProperty::getProperties.
Definition: Algorithm.cpp:1159
AlgorithmHistory::AlgorithmHistory ( const std::string &  algVersion,
const std::string &  algName,
const std::string &  algType,
const PropertyList props,
const HistoryList subHists 
)
explicit

Definition at line 52 of file AlgorithmHistory.cpp.

56  :
57  m_algorithm_type(algType), // FIXME type_info???
58  m_algorithm_version(algVersion),
59  m_algorithm_name(algName),
60  m_algorithm(0),
61  m_properties(props),
62  m_subalgorithm_histories(subHists),
63  m_jobHistory(0) {}
std::string m_algorithm_type
std::string m_algorithm_version
HistoryList m_subalgorithm_histories
PropertyList m_properties
const Algorithm * m_algorithm
std::string m_algorithm_name
const JobHistory * m_jobHistory
AlgorithmHistory::~AlgorithmHistory ( )
virtual

Definition at line 69 of file AlgorithmHistory.cpp.

69  {
70  for ( HistoryList::const_iterator
71  iphist=m_subalgorithm_histories.begin();
72  iphist!=m_subalgorithm_histories.end(); ++iphist ) {
73  delete *iphist;
74  }
75 }
HistoryList m_subalgorithm_histories

Member Function Documentation

const Algorithm* AlgorithmHistory::algorithm ( ) const
inline

Definition at line 87 of file AlgorithmHistory.h.

87 { return m_algorithm; }
const Algorithm * m_algorithm
const std::string& AlgorithmHistory::algorithm_name ( ) const
inline

Definition at line 84 of file AlgorithmHistory.h.

84 { return m_algorithm_name; }
std::string m_algorithm_name
const std::string& AlgorithmHistory::algorithm_type ( ) const
inline

Definition at line 78 of file AlgorithmHistory.h.

78 { return m_algorithm_type; }
std::string m_algorithm_type
const std::string& AlgorithmHistory::algorithm_version ( ) const
inline

Definition at line 81 of file AlgorithmHistory.h.

81 { return m_algorithm_version; }
std::string m_algorithm_version
const CLID & AlgorithmHistory::classID ( )
static

Definition at line 80 of file AlgorithmHistory.cpp.

80  {
81 
82  static CLID CLID_AlgorithmHistory = 56809101; //from `clid AlgorithmHistory`
83  return CLID_AlgorithmHistory;
84 
85 }
unsigned int CLID
Class ID definition.
Definition: ClassID.h:9
virtual const CLID& AlgorithmHistory::clID ( ) const
inlinevirtual

Retrieve reference to class definition structure.

Retrieve Pointer to class definition structure.

Reimplemented from HistoryObj.

Definition at line 74 of file AlgorithmHistory.h.

74 { return classID(); }
static const CLID & classID()
void AlgorithmHistory::dump ( std::ostream &  ost,
const bool  isXML = false,
int  indent = 0 
) const
virtual

Implements HistoryObj.

Definition at line 90 of file AlgorithmHistory.cpp.

90  {
91 
92  if (!isXML) {
93  ost << "Type: " << algorithm_type() << endl;
94  ost << "Name: " << algorithm_name() << endl;
95  ost << "Version: " << algorithm_version() << endl;
96  // Properties.
97  ost << "Properties: [" << endl;;
98  for ( AlgorithmHistory::PropertyList::const_iterator
99  ipprop=properties().begin();
100  ipprop!=properties().end(); ++ipprop ) {
101  const Property& prop = **ipprop;
102  prop.fillStream(ost);
103  ost << endl;
104  }
105  ost << "]" << endl;
106  // Subalgorithms.
107  if ( subalgorithm_histories().size() == 0 ) {
108  ost << "No subalgorithms.";
109  } else {
110  ost << "Subalgorithms: {" << endl;
111  for ( AlgorithmHistory::HistoryList::const_iterator
112  iphist=subalgorithm_histories().begin();
113  iphist!=subalgorithm_histories().end(); ++iphist ) {
114  if ( iphist==subalgorithm_histories().begin() ) {
115  ost << "----------" << endl;
116  }
117  ost << **iphist << endl;
118  ost << "----------" << endl;
119  }
120  ost << "}";
121  }
122  } else {
123  ind += 2;
124  indent(ost,ind);
125  ost << "<COMPONENT name=\"" << algorithm_name()
126  << "\" class=\"" << convert_string(algorithm_type())
127  << "\" version=\"" << algorithm_version()
128  << "\">" << std::endl;
129 
130  for ( AlgorithmHistory::PropertyList::const_iterator
131  ipprop=properties().begin();
132  ipprop!=properties().end(); ++ipprop ) {
133  const Property& prop = **ipprop;
134  indent(ost,ind+2);
135  ost << "<PROPERTY name=\"" << prop.name()
136  << "\" value=\"" << convert_string(prop.toString())
137  << "\" documentation=\"" << convert_string(prop.documentation())
138  << "\">" << std::endl;
139  }
140 
141  // Subalgs
142  if ( subalgorithm_histories().size() != 0 ) {
143  for ( AlgorithmHistory::HistoryList::const_iterator
144  iphist=subalgorithm_histories().begin();
145  iphist!=subalgorithm_histories().end(); ++iphist ) {
146  (*iphist)->dump(ost,isXML,ind+2);
147  }
148 
149  }
150 
151  indent(ost,ind);
152  ost << "</COMPONENT>" << std::endl;
153 
154 
155 
156 
157 
158  }
159 }
virtual std::string toString() const =0
value -> string
const std::string & name() const
property name
Definition: Property.h:47
const std::string & documentation() const
property documentation
Definition: Property.h:49
virtual std::ostream & fillStream(std::ostream &) const
the printout of the property value
Definition: Property.cpp:182
const std::string & algorithm_name() const
virtual void indent(std::ostream &, int) const
Definition: HistoryObj.cpp:52
const PropertyList & properties() const
Property base class allowing Property* collections to be "homogeneous".
Definition: Property.h:43
static std::string convert_string(const std::string &)
Definition: HistoryObj.cpp:29
const std::string & algorithm_version() const
const std::string & algorithm_type() const
const HistoryList & subalgorithm_histories() const
const JobHistory* AlgorithmHistory::jobHistory ( ) const
inline

Definition at line 97 of file AlgorithmHistory.h.

97 { return m_jobHistory; }
const JobHistory * m_jobHistory
const std::string& AlgorithmHistory::name ( ) const
inlinevirtual

Implements IVersHistoryObj.

Definition at line 102 of file AlgorithmHistory.h.

102 { return algorithm_name(); }
const std::string & algorithm_name() const
const PropertyList& AlgorithmHistory::properties ( ) const
inlinevirtual

Implements IVersHistoryObj.

Definition at line 90 of file AlgorithmHistory.h.

90 { return m_properties; }
PropertyList m_properties
const HistoryList& AlgorithmHistory::subalgorithm_histories ( ) const
inline

Definition at line 93 of file AlgorithmHistory.h.

94  { return m_subalgorithm_histories; }
HistoryList m_subalgorithm_histories
const std::string& AlgorithmHistory::type ( ) const
inlinevirtual

Implements IVersHistoryObj.

Definition at line 103 of file AlgorithmHistory.h.

103 { return algorithm_type(); }
const std::string & algorithm_type() const
const std::string& AlgorithmHistory::version ( ) const
inlinevirtual

Implements IVersHistoryObj.

Definition at line 104 of file AlgorithmHistory.h.

104 { return algorithm_version(); }
const std::string & algorithm_version() const

Member Data Documentation

const Algorithm* AlgorithmHistory::m_algorithm
private

Definition at line 48 of file AlgorithmHistory.h.

std::string AlgorithmHistory::m_algorithm_name
private

Definition at line 45 of file AlgorithmHistory.h.

std::string AlgorithmHistory::m_algorithm_type
private

Definition at line 39 of file AlgorithmHistory.h.

std::string AlgorithmHistory::m_algorithm_version
private

Definition at line 42 of file AlgorithmHistory.h.

const JobHistory* AlgorithmHistory::m_jobHistory
private

Definition at line 57 of file AlgorithmHistory.h.

PropertyList AlgorithmHistory::m_properties
private

Definition at line 51 of file AlgorithmHistory.h.

HistoryList AlgorithmHistory::m_subalgorithm_histories
private

Definition at line 54 of file AlgorithmHistory.h.


The documentation for this class was generated from the following files: