00001 #ifndef artdaq_Application_MPI2_RoutingMasterApp_hh
00002 #define artdaq_Application_MPI2_RoutingMasterApp_hh
00003
00004 #include "artdaq/Application/Commandable.hh"
00005 #include "artdaq/Application/RoutingMasterCore.hh"
00006
00007 namespace artdaq
00008 {
00009 class RoutingMasterApp;
00010 }
00011
00015 class artdaq::RoutingMasterApp : public artdaq::Commandable
00016 {
00017 public:
00021 RoutingMasterApp();
00022
00026 RoutingMasterApp(RoutingMasterApp const&) = delete;
00027
00031 virtual ~RoutingMasterApp() = default;
00032
00037 RoutingMasterApp& operator=(RoutingMasterApp const&) = delete;
00038
00039
00047 bool do_initialize(fhicl::ParameterSet const& pset, uint64_t timeout, uint64_t timestamp) override;
00048
00056 bool do_start(art::RunID id, uint64_t timeout, uint64_t timestamp) override;
00057
00064 bool do_stop(uint64_t timeout, uint64_t timestamp) override;
00065
00072 bool do_pause(uint64_t timeout, uint64_t timestamp) override;
00073
00080 bool do_resume(uint64_t timeout, uint64_t timestamp) override;
00081
00087 bool do_shutdown(uint64_t timeout) override;
00088
00096 bool do_soft_initialize(fhicl::ParameterSet const& pset, uint64_t timeout, uint64_t timestamp) override;
00097
00105 bool do_reinitialize(fhicl::ParameterSet const& pset, uint64_t timeout, uint64_t timestamp) override;
00106
00112 void BootedEnter() override;
00113
00114
00120 std::string report(std::string const&) const override;
00121
00122 private:
00123 std::unique_ptr<artdaq::RoutingMasterCore> routing_master_ptr_;
00124 boost::thread routing_master_thread_;
00125 };
00126
00127 #endif