Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00013
00014 #include "GaudiKernel/ServiceHistory.h"
00015 #include "GaudiKernel/JobHistory.h"
00016 #include "GaudiKernel/IService.h"
00017 #include "GaudiKernel/Service.h"
00018 #include <iostream>
00019
00020 using namespace std;
00021
00022
00023
00025
00026
00027 ServiceHistory::ServiceHistory():
00028
00029 m_pService(0),
00030 m_name("none"),
00031 m_type("none"),
00032 m_version("none")
00033 {
00034
00035 }
00036
00037
00038
00039 ServiceHistory::ServiceHistory(const IService* isv, const JobHistory* job):
00040
00041 m_pService(isv),
00042 m_jobHistory(job),
00043 m_name(isv->name()),
00044 m_version("none")
00045 {
00046
00047 const Service *svc = dynamic_cast<const Service*>(isv);
00048 m_type = System::typeinfoName(typeid(*svc));
00049 m_properties = svc->getProperties();
00050
00051 }
00052
00053
00054
00055
00056 ServiceHistory::ServiceHistory(const IService& isv, const JobHistory* job):
00057
00058 m_pService(&isv),
00059 m_jobHistory(job),
00060 m_name(isv.name()),
00061 m_version("none")
00062 {
00063
00064 const Service *svc = dynamic_cast<const Service*>(&isv);
00065 m_type = System::typeinfoName(typeid(*svc));
00066 m_properties = svc->getProperties();
00067
00068 }
00069
00070
00071
00072 ServiceHistory::~ServiceHistory() {
00073
00074 }
00075
00076
00077
00078 const CLID&
00079 ServiceHistory::classID() {
00080
00081 static CLID CLID_ServiceHistory = 187225489;
00082 return CLID_ServiceHistory;
00083
00084 }
00085
00086
00087
00088 void
00089 ServiceHistory::dump(std::ostream& ost, const bool isXML, int ind) const {
00090
00091 if (!isXML) {
00092
00093 ost << "Name: " << name() << endl;
00094 ost << "Type: " << type() << endl;
00095 ost << "Version: " << version() << endl;
00096
00097
00098 ost << "Properties: [" << endl;
00099
00100 for ( ServiceHistory::PropertyList::const_iterator
00101 ipprop=properties().begin();
00102 ipprop!=properties().end(); ++ipprop ) {
00103 const Property& prop = **ipprop;
00104 prop.fillStream(ost);
00105 ost << endl;
00106 }
00107 ost << "]" << endl;
00108
00109 } else {
00110
00111 ind += 2;
00112 indent(ost,ind);
00113 ost << "<COMPONENT name=\"" << name()
00114 << "\" class=\"" << convert_string(type())
00115 << "\" version=\"" << convert_string(version())
00116 << "\">" << endl;
00117
00118 for ( ServiceHistory::PropertyList::const_iterator
00119 ipprop=properties().begin();
00120 ipprop!=properties().end(); ++ipprop ) {
00121 const Property& prop = **ipprop;
00122
00123 indent(ost,ind+2);
00124 ost << "<PROPERTY name=\"" << prop.name()
00125 << "\" value=\"" << convert_string(prop.toString())
00126 << "\" documentation=\"" << convert_string(prop.documentation())
00127 << "\">" << endl;
00128 }
00129
00130 indent(ost,ind);
00131 ost << "</COMPONENT>" << endl;
00132
00133 }
00134
00135 }
00136
00137
00138
00139
00140
00141
00142
00143
00144 ostream& operator<<(ostream& lhs, const ServiceHistory& rhs) {
00145
00146 rhs.dump(lhs,false);
00147
00148 return lhs;
00149 }