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
|
#ifndef FWCore_Services_monitor_file_utilities_h
#define FWCore_Services_monitor_file_utilities_h
#include <iomanip>
#include <iostream>
#include <vector>
#include <concepts>
#include "FWCore/ServiceRegistry/interface/StreamContext.h"
#include "FWCore/ServiceRegistry/interface/ModuleCallingContext.h"
#include "FWCore/ServiceRegistry/interface/ESModuleCallingContext.h"
#include "DataFormats/Provenance/interface/ModuleDescription.h"
#include "FWCore/Framework/interface/ComponentDescription.h"
namespace edm::service::monitor_file_utilities {
inline auto stream_id(edm::StreamContext const& cs) { return cs.streamID().value(); }
inline auto module_id(edm::ModuleCallingContext const& mcc) { return mcc.moduleDescription()->id(); }
inline auto module_id(edm::ESModuleCallingContext const& mcc) { return mcc.componentDescription()->id_; }
inline auto module_callid(edm::ModuleCallingContext const& mcc) { return mcc.callID(); }
inline auto module_callid(edm::ESModuleCallingContext const& mcc) { return mcc.callID(); }
template <std::integral T>
void concatenate(std::ostream& os, T const t) {
os << ' ' << t;
}
template <std::integral H, std::integral... T>
void concatenate(std::ostream& os, H const h, T const... t) {
os << ' ' << h;
concatenate(os, t...);
}
void moduleIdToLabel(std::ostream&,
std::vector<std::string> const& iModules,
char moduleIdSymbol,
std::string const& iIDHeader,
std::string const& iLabelHeader);
} // namespace edm::service::monitor_file_utilities
#endif
|