artdaq  v3_09_00
PrintBuildInfo_module.cc
1 // Class: PrintBuildInfo
3 // Module Type: analyzer
4 // File: PrintBuildInfo_module.cc
5 //
6 // Generated at Fri Aug 15 21:05:07 2014 by lbnedaq using artmod
7 // from cetpkgsupport v1_05_02.
9 
10 #include "art/Framework/Core/EDAnalyzer.h"
11 #include "art/Framework/Core/ModuleMacros.h"
12 #include "art/Framework/Principal/Event.h"
13 #include "art/Framework/Principal/Handle.h"
14 #include "art/Framework/Principal/Run.h"
15 #include "art/Framework/Principal/SubRun.h"
16 #include "canvas/Utilities/InputTag.h"
17 #include "fhiclcpp/ParameterSet.h"
18 
19 #include "artdaq-core/Data/PackageBuildInfo.hh"
20 
21 #include <iostream>
22 
23 namespace artdaq {
24 class PrintBuildInfo;
25 }
26 
30 class artdaq::PrintBuildInfo : public art::EDAnalyzer
31 {
32 public:
45  explicit PrintBuildInfo(fhicl::ParameterSet const& p);
46 
50  ~PrintBuildInfo() override = default;
51 
55  void analyze(art::Event const& /*unused*/) override {}
56 
64  void beginRun(art::Run const& run) override;
65 
66 private:
67  PrintBuildInfo(PrintBuildInfo const&) = delete;
68  PrintBuildInfo(PrintBuildInfo&&) = delete;
69  PrintBuildInfo& operator=(PrintBuildInfo const&) = delete;
70  PrintBuildInfo& operator=(PrintBuildInfo&&) = delete;
71 
72  std::string buildinfo_module_label_;
73  std::string buildinfo_instance_label_;
74 };
75 
76 artdaq::PrintBuildInfo::PrintBuildInfo(fhicl::ParameterSet const& pset)
77  : EDAnalyzer(pset)
78  , buildinfo_module_label_(pset.get<std::string>("buildinfo_module_label"))
79  , buildinfo_instance_label_(pset.get<std::string>("buildinfo_instance_label")) {}
80 
81 void artdaq::PrintBuildInfo::beginRun(art::Run const& run)
82 {
83  art::Handle<std::vector<artdaq::PackageBuildInfo>> raw;
84 
85  run.getByLabel(buildinfo_module_label_, buildinfo_instance_label_, raw);
86 
87  if (raw.isValid())
88  {
89  std::cout << "--------------------------------------------------------------" << std::endl;
90  std::cout.width(20);
91  std::cout << std::left << "Package"
92  << "|";
93  std::cout.width(20);
94  std::cout << std::left << "Version"
95  << "|";
96  std::cout.width(20);
97  std::cout << std::left << "Timestamp" << std::endl;
98 
99  for (const auto& pkg : *raw)
100  {
101  std::cout.width(20);
102  std::cout << std::left << pkg.getPackageName() << "|";
103  std::cout.width(20);
104  std::cout << std::left << pkg.getPackageVersion() << "|";
105  std::cout.width(20);
106  std::cout << std::left << pkg.getBuildTimestamp() << std::endl;
107  }
108 
109  std::cout << "--------------------------------------------------------------" << std::endl;
110  }
111  else
112  {
113  std::cerr << "\n"
114  << std::endl;
115  std::cerr << "Warning in artdaq::PrintBuildInfo module: Run " << run.run() << " appears not to have found product instance \"" << buildinfo_instance_label_ << "\" of module \"" << buildinfo_module_label_ << "\"" << std::endl;
116  std::cerr << "\n"
117  << std::endl;
118  }
119 }
120 
121 DEFINE_ART_MODULE(artdaq::PrintBuildInfo) // NOLINT(performance-unnecessary-value-param)
void beginRun(art::Run const &run) override
Perform actions at the beginning of the run.
An art::EDAnalyzer which prints any artdaq::BuildInfo objects stored in the run.
void analyze(art::Event const &) override
Called for each event. Required overload for art::EDAnalyzer, No-Op here.
PrintBuildInfo(fhicl::ParameterSet const &p)
PrintBuildInfo Constructor.
~PrintBuildInfo() override=default
Default virtual Destructor.