File indexing completed on 2024-04-06 12:13:04
0001 #ifndef FWCore_Services_monitor_file_utilities_h
0002 #define FWCore_Services_monitor_file_utilities_h
0003
0004 #include <iomanip>
0005 #include <iostream>
0006 #include <vector>
0007
0008 #include "FWCore/ServiceRegistry/interface/StreamContext.h"
0009 #include "FWCore/ServiceRegistry/interface/ModuleCallingContext.h"
0010 #include "FWCore/ServiceRegistry/interface/ESModuleCallingContext.h"
0011 #include "DataFormats/Provenance/interface/ModuleDescription.h"
0012 #include "FWCore/Framework/interface/ComponentDescription.h"
0013
0014 namespace edm::service::monitor_file_utilities {
0015
0016 inline auto stream_id(edm::StreamContext const& cs) { return cs.streamID().value(); }
0017
0018 inline auto module_id(edm::ModuleCallingContext const& mcc) { return mcc.moduleDescription()->id(); }
0019
0020 inline auto module_id(edm::ESModuleCallingContext const& mcc) { return mcc.componentDescription()->id_; }
0021
0022 inline auto module_callid(edm::ModuleCallingContext const& mcc) { return mcc.callID(); }
0023
0024 inline auto module_callid(edm::ESModuleCallingContext const& mcc) { return mcc.callID(); }
0025
0026 template <typename T>
0027 std::enable_if_t<std::is_integral<T>::value> concatenate(std::ostream& os, T const t) {
0028 os << ' ' << t;
0029 }
0030
0031 template <typename H, typename... T>
0032 std::enable_if_t<std::is_integral<H>::value> concatenate(std::ostream& os, H const h, T const... t) {
0033 os << ' ' << h;
0034 concatenate(os, t...);
0035 }
0036
0037 void moduleIdToLabel(std::ostream&,
0038 std::vector<std::string> const& iModules,
0039 char moduleIdSymbol,
0040 std::string const& iIDHeader,
0041 std::string const& iLabelHeader);
0042 }
0043 #endif