The Gaudi Framework  master (82fdf313)
Loading...
Searching...
No Matches
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>
17
18#include <ctime>
19#include <iosfwd>
20#include <memory>
21#include <string>
22#include <utility>
23#include <vector>
24
32class GAUDI_API JobHistory : public HistoryObj, virtual public IVersHistoryObj {
33
34public:
35 typedef std::vector<std::pair<std::string, std::unique_ptr<Gaudi::Property<std::string>>>> PropertyPairList;
36
37private: // 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
51
52 std::vector<std::string> m_CVSid;
54
55public: // 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};
unsigned int CLID
Class ID definition.
Definition ClassID.h:16
#define GAUDI_API
Definition Kernel.h:49
Base class for History Objects.
Definition HistoryObj.h:30
virtual std::ostream & dump(std::ostream &, bool isXML=false, int indent=0) const =0
static const CLID & classID()
Interface for Versioned History Objects.
std::vector< Gaudi::Details::PropertyBase * > PropertyList
virtual ~JobHistory()
const std::string & name() const override
Definition JobHistory.h:86
std::string m_os_version
Definition JobHistory.h:44
const std::string & version() const override
Definition JobHistory.h:87
time_t start_time() const
Definition JobHistory.h:82
const std::string & os() const
Definition JobHistory.h:73
std::string m_osname
Definition JobHistory.h:42
std::vector< std::string > m_CVSid
Definition JobHistory.h:52
const CLID & clID() const override
Retrieve reference to class definition structure.
Definition JobHistory.h:65
const std::string & machine() const
Definition JobHistory.h:76
friend std::ostream & operator<<(std::ostream &lhs, const JobHistory &rhs)
Definition JobHistory.h:91
const std::vector< std::string > & environment() const
Definition JobHistory.h:79
const std::string & dir() const
Definition JobHistory.h:77
const std::string & release_version() const
Definition JobHistory.h:72
const PropertyPairList & propertyPairs() const
Definition JobHistory.h:81
time_t m_start_time
Definition JobHistory.h:53
std::ostream & dump(std::ostream &, bool isXML, int indent) const override
std::vector< std::pair< std::string, std::unique_ptr< Gaudi::Property< std::string > > > > PropertyPairList
Definition JobHistory.h:35
std::string m_machine
Definition JobHistory.h:45
std::string m_cmtconfig
Definition JobHistory.h:40
PropertyList m_props
Definition JobHistory.h:49
std::string m_release_version
Definition JobHistory.h:38
std::string m_hostname
Definition JobHistory.h:43
std::vector< std::string > m_environ
Definition JobHistory.h:47
const std::string & hostname() const
Definition JobHistory.h:74
PropertyPairList m_ppl
Definition JobHistory.h:50
const std::string & os_version() const
Definition JobHistory.h:75
const PropertyList & properties() const override
Definition JobHistory.h:80
const std::string & cmtconfig() const
Definition JobHistory.h:78
std::string m_dir
Definition JobHistory.h:39
const std::string & type() const override
Definition JobHistory.h:88