artdaq  v3_08_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  virtual ~PrintBuildInfo() = default;
51 
55  void analyze(art::Event const&) override {}
56 
64  void beginRun(art::Run const& run) override;
65 
66 private:
67  std::string buildinfo_module_label_;
68  std::string buildinfo_instance_label_;
69 };
70 
71 artdaq::PrintBuildInfo::PrintBuildInfo(fhicl::ParameterSet const& pset)
72  : EDAnalyzer(pset)
73  , buildinfo_module_label_(pset.get<std::string>("buildinfo_module_label"))
74  , buildinfo_instance_label_(pset.get<std::string>("buildinfo_instance_label")) {}
75 
76 void artdaq::PrintBuildInfo::beginRun(art::Run const& run)
77 {
78  art::Handle<std::vector<artdaq::PackageBuildInfo>> raw;
79 
80  run.getByLabel(buildinfo_module_label_, buildinfo_instance_label_, raw);
81 
82  if (raw.isValid())
83  {
84  std::cout << "--------------------------------------------------------------" << std::endl;
85  std::cout.width(20);
86  std::cout << std::left << "Package"
87  << "|";
88  std::cout.width(20);
89  std::cout << std::left << "Version"
90  << "|";
91  std::cout.width(20);
92  std::cout << std::left << "Timestamp" << std::endl;
93 
94  for (auto pkg : *raw)
95  {
96  std::cout.width(20);
97  std::cout << std::left << pkg.getPackageName() << "|";
98  std::cout.width(20);
99  std::cout << std::left << pkg.getPackageVersion() << "|";
100  std::cout.width(20);
101  std::cout << std::left << pkg.getBuildTimestamp() << std::endl;
102  }
103 
104  std::cout << "--------------------------------------------------------------" << std::endl;
105  }
106  else
107  {
108  std::cerr << "\n"
109  << std::endl;
110  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;
111  std::cerr << "\n"
112  << std::endl;
113  }
114 }
115 
116 DEFINE_ART_MODULE(artdaq::PrintBuildInfo)
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.
virtual ~PrintBuildInfo()=default
Default virtual Destructor.