The Gaudi Framework  master (d98a2936)
JobHistory.h
Go to the documentation of this file.
1 /***********************************************************************************\
2 * (c) Copyright 1998-2025 CERN for the benefit of the LHCb and ATLAS collaborations *
3 * *
4 * This software is distributed under the terms of the Apache version 2 licence, *
5 * copied verbatim in the file "LICENSE". *
6 * *
7 * In applying this licence, CERN does not waive the privileges and immunities *
8 * granted to it by virtue of its status as an Intergovernmental Organization *
9 * or submit itself to any jurisdiction. *
10 \***********************************************************************************/
11 
12 #pragma once
13 
14 #include <Gaudi/Property.h>
15 #include <GaudiKernel/HistoryObj.h>
17 
18 #include <ctime>
19 #include <iosfwd>
20 #include <memory>
21 #include <string>
22 #include <utility>
23 #include <vector>
24 
32 class GAUDI_API JobHistory : public HistoryObj, virtual public IVersHistoryObj {
33 
34 public:
35  typedef std::vector<std::pair<std::string, std::unique_ptr<Gaudi::Property<std::string>>>> PropertyPairList;
36 
37 private: // data
38  std::string m_release_version;
39  std::string m_dir;
40  std::string m_cmtconfig;
41 
42  std::string m_osname;
43  std::string m_hostname;
44  std::string m_os_version;
45  std::string m_machine;
46 
47  std::vector<std::string> m_environ;
48 
49  PropertyList m_props;
51 
52  std::vector<std::string> m_CVSid;
53  time_t m_start_time;
54 
55 public: // functions
56  // Constructor.
57  JobHistory();
58  JobHistory( const std::string& rel, const std::string& os, const std::string& host, const std::string& dir,
59  const std::string& osver, const std::string& mach, const std::string& cmtconfig, const time_t& time );
60 
61  // Destructor.
62  virtual ~JobHistory();
63 
64  // Class IDs
65  const CLID& clID() const override { return classID(); }
66  static const CLID& classID();
67 
68  // add a global property
69  void addProperty( const std::string& key, const std::string& value );
70 
71  // Return the job history data.
72  const std::string& release_version() const { return m_release_version; }
73  const std::string& os() const { return m_osname; }
74  const std::string& hostname() const { return m_hostname; }
75  const std::string& os_version() const { return m_os_version; }
76  const std::string& machine() const { return m_machine; }
77  const std::string& dir() const { return m_dir; }
78  const std::string& cmtconfig() const { return m_cmtconfig; }
79  const std::vector<std::string>& environment() const { return m_environ; }
80  const PropertyList& properties() const override { return m_props; }
81  const PropertyPairList& propertyPairs() const { return m_ppl; }
82  time_t start_time() const { return m_start_time; }
83 
84  std::ostream& dump( std::ostream&, bool isXML, int indent ) const override;
85 
86  const std::string& name() const override { return m_machine; }
87  const std::string& version() const override { return m_release_version; }
88  const std::string& type() const override { return m_osname; }
89 
90  // Output stream.
91  friend std::ostream& operator<<( std::ostream& lhs, const JobHistory& rhs ) { return rhs.dump( lhs, false, 0 ); }
92 };
HistoryObj::classID
static const CLID & classID()
Definition: HistoryObj.cpp:44
JobHistory::properties
const PropertyList & properties() const override
Definition: JobHistory.h:80
JobHistory::os
const std::string & os() const
Definition: JobHistory.h:73
JobHistory::environment
const std::vector< std::string > & environment() const
Definition: JobHistory.h:79
JobHistory::dump
std::ostream & dump(std::ostream &, bool isXML, int indent) const override
Definition: JobHistory.cpp:82
JobHistory::m_props
PropertyList m_props
Definition: JobHistory.h:49
JobHistory::m_machine
std::string m_machine
Definition: JobHistory.h:45
JobHistory::machine
const std::string & machine() const
Definition: JobHistory.h:76
JobHistory::cmtconfig
const std::string & cmtconfig() const
Definition: JobHistory.h:78
JobHistory::operator<<
friend std::ostream & operator<<(std::ostream &lhs, const JobHistory &rhs)
Definition: JobHistory.h:91
JobHistory::dir
const std::string & dir() const
Definition: JobHistory.h:77
JobHistory::m_dir
std::string m_dir
Definition: JobHistory.h:39
JobHistory::type
const std::string & type() const override
Definition: JobHistory.h:88
HistoryObj
Definition: HistoryObj.h:30
JobHistory::m_CVSid
std::vector< std::string > m_CVSid
Definition: JobHistory.h:52
JobHistory::name
const std::string & name() const override
Definition: JobHistory.h:86
IVersHistoryObj.h
JobHistory::PropertyPairList
std::vector< std::pair< std::string, std::unique_ptr< Gaudi::Property< std::string > > > > PropertyPairList
Definition: JobHistory.h:35
JobHistory::m_os_version
std::string m_os_version
Definition: JobHistory.h:44
JobHistory::m_osname
std::string m_osname
Definition: JobHistory.h:42
CLID
unsigned int CLID
Class ID definition.
Definition: ClassID.h:16
IVersHistoryObj
Definition: IVersHistoryObj.h:27
plotSpeedupsPyRoot.time
time
Definition: plotSpeedupsPyRoot.py:180
JobHistory::os_version
const std::string & os_version() const
Definition: JobHistory.h:75
HistoryObj::dump
virtual std::ostream & dump(std::ostream &, bool isXML=false, int indent=0) const =0
JobHistory::m_environ
std::vector< std::string > m_environ
Definition: JobHistory.h:47
JobHistory::clID
const CLID & clID() const override
Retrieve reference to class definition structure.
Definition: JobHistory.h:65
JobHistory::hostname
const std::string & hostname() const
Definition: JobHistory.h:74
JobHistory::start_time
time_t start_time() const
Definition: JobHistory.h:82
HistoryObj.h
JobHistory::m_ppl
PropertyPairList m_ppl
Definition: JobHistory.h:50
JobHistory::m_hostname
std::string m_hostname
Definition: JobHistory.h:43
JobHistory
Definition: JobHistory.h:32
JobHistory::m_release_version
std::string m_release_version
Definition: JobHistory.h:38
JobHistory::release_version
const std::string & release_version() const
Definition: JobHistory.h:72
JobHistory::propertyPairs
const PropertyPairList & propertyPairs() const
Definition: JobHistory.h:81
JobHistory::version
const std::string & version() const override
Definition: JobHistory.h:87
JobHistory::m_cmtconfig
std::string m_cmtconfig
Definition: JobHistory.h:40
JobHistory::~JobHistory
virtual ~JobHistory()
ProduceConsume.key
key
Definition: ProduceConsume.py:84
GAUDI_API
#define GAUDI_API
Definition: Kernel.h:49
JobHistory::m_start_time
time_t m_start_time
Definition: JobHistory.h:53
Property.h