$treeview $search $mathjax $extrastylesheet
artdaq
v3_04_01
$projectbrief
|
$projectbrief
|
$searchbox |
00001 #ifndef artdaq_Application_MPI2_DispatcherCore_hh 00002 #define artdaq_Application_MPI2_DispatcherCore_hh 00003 00004 #include <string> 00005 00006 #include "fhiclcpp/ParameterSet.h" 00007 #include "canvas/Persistency/Provenance/RunID.h" 00008 00009 #include "artdaq/Application/DataReceiverCore.hh" 00010 00011 00012 namespace artdaq 00013 { 00014 class DispatcherCore; 00015 } 00016 00021 class artdaq::DispatcherCore : public DataReceiverCore 00022 { 00023 public: 00024 00028 DispatcherCore(); 00029 00033 DispatcherCore(DispatcherCore const&) = delete; 00034 00038 ~DispatcherCore(); 00039 00044 DispatcherCore& operator=(DispatcherCore const&) = delete; 00045 00073 bool initialize(fhicl::ParameterSet const& pset) override; 00074 00082 std::string register_monitor(fhicl::ParameterSet const& pset); 00083 00089 std::string unregister_monitor(std::string const& label); 00090 00091 00092 private: 00093 fhicl::ParameterSet generate_filter_fhicl_(); 00094 fhicl::ParameterSet merge_parameter_sets_(fhicl::ParameterSet skel, std::string label, fhicl::ParameterSet pset); 00095 void check_filters_(); 00096 00097 std::mutex dispatcher_transfers_mutex_; 00098 std::unordered_map<std::string, fhicl::ParameterSet> registered_monitors_; 00099 std::unordered_map<std::string, pid_t> registered_monitor_pids_; 00100 fhicl::ParameterSet pset_; // The ParameterSet initially passed to the Dispatcher (contains input info) 00101 bool broadcast_mode_; 00102 }; 00103 00104 #endif 00105 00106 // LocalWords: ds