$treeview $search $mathjax $extrastylesheet
artdaq
v3_04_01
$projectbrief
|
$projectbrief
|
$searchbox |
00001 00002 // Class: PrintBuildInfo 00003 // Module Type: analyzer 00004 // File: PrintBuildInfo_module.cc 00005 // 00006 // Generated at Fri Aug 15 21:05:07 2014 by lbnedaq using artmod 00007 // from cetpkgsupport v1_05_02. 00009 00010 00011 #include "art/Framework/Core/EDAnalyzer.h" 00012 #include "art/Framework/Core/ModuleMacros.h" 00013 #include "art/Framework/Principal/Event.h" 00014 #include "art/Framework/Principal/Handle.h" 00015 #include "art/Framework/Principal/Run.h" 00016 #include "art/Framework/Principal/SubRun.h" 00017 #include "canvas/Utilities/InputTag.h" 00018 #include "fhiclcpp/ParameterSet.h" 00019 00020 #include "artdaq-core/Data/PackageBuildInfo.hh" 00021 00022 #include <iostream> 00023 00024 namespace artdaq 00025 { 00026 class PrintBuildInfo; 00027 } 00028 00032 class artdaq::PrintBuildInfo : public art::EDAnalyzer 00033 { 00034 public: 00047 explicit PrintBuildInfo(fhicl::ParameterSet const& p); 00048 00052 virtual ~PrintBuildInfo() = default; 00053 00057 void analyze(art::Event const&) override { } 00058 00066 void beginRun(art::Run const& run) override; 00067 00068 private: 00069 00070 std::string buildinfo_module_label_; 00071 std::string buildinfo_instance_label_; 00072 }; 00073 00074 00075 artdaq::PrintBuildInfo::PrintBuildInfo(fhicl::ParameterSet const& pset) 00076 : 00077 EDAnalyzer(pset) 00078 , buildinfo_module_label_(pset.get<std::string>("buildinfo_module_label")) 00079 , buildinfo_instance_label_(pset.get<std::string>("buildinfo_instance_label")) {} 00080 00081 00082 00083 void artdaq::PrintBuildInfo::beginRun(art::Run const& run) 00084 { 00085 art::Handle<std::vector<artdaq::PackageBuildInfo>> raw; 00086 00087 run.getByLabel(buildinfo_module_label_, buildinfo_instance_label_, raw); 00088 00089 if (raw.isValid()) 00090 { 00091 std::cout << "--------------------------------------------------------------" << std::endl; 00092 std::cout.width(20); 00093 std::cout << std::left << "Package" << "|"; 00094 std::cout.width(20); 00095 std::cout << std::left << "Version" << "|"; 00096 std::cout.width(20); 00097 std::cout << std::left << "Timestamp" << std::endl; 00098 00099 for (auto pkg : *raw) 00100 { 00101 std::cout.width(20); 00102 std::cout << std::left << pkg.getPackageName() << "|"; 00103 std::cout.width(20); 00104 std::cout << std::left << pkg.getPackageVersion() << "|"; 00105 std::cout.width(20); 00106 std::cout << std::left << pkg.getBuildTimestamp() << std::endl; 00107 } 00108 00109 std::cout << "--------------------------------------------------------------" << std::endl; 00110 } 00111 else 00112 { 00113 std::cerr << "\n" << std::endl; 00114 std::cerr << "Warning in artdaq::PrintBuildInfo module: Run " << run.run() << 00115 " appears not to have found product instance \"" << buildinfo_instance_label_ << 00116 "\" of module \"" << buildinfo_module_label_ << "\"" << std::endl; 00117 std::cerr << "\n" << std::endl; 00118 } 00119 } 00120 00121 DEFINE_ART_MODULE(artdaq::PrintBuildInfo)