$treeview $search $mathjax $extrastylesheet
artdaq
v3_04_01
$projectbrief
|
$projectbrief
|
$searchbox |
00001 #ifndef artdaq_Application_MPI2_BoardReaderApp_hh 00002 #define artdaq_Application_MPI2_BoardReaderApp_hh 00003 00004 #include <future> 00005 00006 #include "artdaq/Application/Commandable.hh" 00007 #include "artdaq/Application/BoardReaderCore.hh" 00008 00009 namespace artdaq 00010 { 00011 class BoardReaderApp; 00012 } 00013 00017 class artdaq::BoardReaderApp : public artdaq::Commandable 00018 { 00019 public: 00023 BoardReaderApp(); 00024 00028 BoardReaderApp(BoardReaderApp const&) = delete; 00029 00033 virtual ~BoardReaderApp() = default; 00034 00039 BoardReaderApp& operator=(BoardReaderApp const&) = delete; 00040 00041 // these methods provide the operations that are used by the state machine 00049 bool do_initialize(fhicl::ParameterSet const& pset, uint64_t timeout, uint64_t timestamp) override; 00050 00058 bool do_start(art::RunID id, uint64_t timeout, uint64_t timestamp) override; 00059 00066 bool do_stop(uint64_t timeout, uint64_t timestamp) override; 00067 00074 bool do_pause(uint64_t timeout, uint64_t timestamp) override; 00075 00082 bool do_resume(uint64_t timeout, uint64_t timestamp) override; 00083 00089 bool do_shutdown(uint64_t timeout) override; 00090 00098 bool do_soft_initialize(fhicl::ParameterSet const& pset, uint64_t timeout, uint64_t timestamp) override; 00099 00107 bool do_reinitialize(fhicl::ParameterSet const& pset, uint64_t timeout, uint64_t timestamp) override; 00108 00114 void BootedEnter() override; 00115 00122 bool do_meta_command(std::string const& command, std::string const& arg) override; 00123 00124 /* Report_ptr */ 00130 std::string report(std::string const& which) const override; 00131 00132 private: 00133 std::unique_ptr<artdaq::BoardReaderCore> fragment_receiver_ptr_; 00134 boost::thread fragment_processing_thread_; 00135 }; 00136 00137 #endif /* artdaq_Application_MPI2_BoardReaderApp_hh */