1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
#include "DataFormats/Provenance/interface/ModuleDescription.h"
#include <ostream>
#include <sstream>
#include <limits>
#include <atomic>
static std::atomic<unsigned int> s_id{0};
/*----------------------------------------------------------------------
----------------------------------------------------------------------*/
namespace edm {
ModuleDescription::ModuleDescription()
: parameterSetID_(), moduleName_(), moduleLabel_(), processConfigurationPtr_(nullptr), id_(invalidID()) {}
ModuleDescription::ModuleDescription(ParameterSetID const& pid,
std::string const& modName,
std::string const& modLabel)
: ModuleDescription{pid, modName, modLabel, nullptr, invalidID()} {}
ModuleDescription::ModuleDescription(ParameterSetID const& pid,
std::string const& modName,
std::string const& modLabel,
ProcessConfiguration const* procConfig,
unsigned int iID)
: parameterSetID_(pid),
moduleName_(modName),
moduleLabel_(modLabel),
processConfigurationPtr_(procConfig),
id_(iID) {}
ModuleDescription::ModuleDescription(std::string const& modName, std::string const& modLabel)
: ModuleDescription{ParameterSetID(), modName, modLabel, nullptr, invalidID()} {}
ModuleDescription::ModuleDescription(std::string const& modName,
std::string const& modLabel,
ProcessConfiguration const* procConfig)
: ModuleDescription{ParameterSetID(), modName, modLabel, procConfig, invalidID()} {}
ModuleDescription::~ModuleDescription() {}
ProcessConfiguration const& ModuleDescription::processConfiguration() const { return *processConfigurationPtr_; }
std::string const& ModuleDescription::processName() const { return processConfiguration().processName(); }
std::string const& ModuleDescription::releaseVersion() const { return processConfiguration().releaseVersion(); }
ParameterSetID const& ModuleDescription::mainParameterSetID() const {
return processConfiguration().parameterSetID();
}
bool ModuleDescription::operator<(ModuleDescription const& rh) const {
if (moduleLabel() < rh.moduleLabel())
return true;
if (rh.moduleLabel() < moduleLabel())
return false;
if (processName() < rh.processName())
return true;
if (rh.processName() < processName())
return false;
if (moduleName() < rh.moduleName())
return true;
if (rh.moduleName() < moduleName())
return false;
if (parameterSetID() < rh.parameterSetID())
return true;
if (rh.parameterSetID() < parameterSetID())
return false;
if (releaseVersion() < rh.releaseVersion())
return true;
if (rh.releaseVersion() < releaseVersion())
return false;
if (processConfiguration().hardwareResourcesDescriptionSerialized() <
rh.processConfiguration().hardwareResourcesDescriptionSerialized())
return true;
return false;
}
bool ModuleDescription::operator==(ModuleDescription const& rh) const { return !((*this) < rh || rh < (*this)); }
bool ModuleDescription::operator!=(ModuleDescription const& rh) const { return !((*this) == rh); }
unsigned int ModuleDescription::getUniqueID() { return s_id++; }
void ModuleDescription::write(std::ostream& os) const {
os << "Module type=" << moduleName() << ", "
<< "Module label=" << moduleLabel() << ", "
<< "Parameter Set ID=" << parameterSetID();
//<< "Parameter Set ID=" << parameterSetID() << ", "
//<< "Process name=" << processName() << ", "
//<< "Release Version=" << releaseVersion() << ", "
//<< "Pass ID=" << passID() << ", "
//<< "Main Parameter Set ID=" << mainParameterSetID();
}
} // namespace edm
|