artdaq_mfextensions  v1_04_00
ReceiverManager.cc
1 #include "mfextensions/Binaries/ReceiverManager.hh"
2 
3 #include <iostream>
4 #include "fhiclcpp/ParameterSet.h"
5 #include "mfextensions/Receivers/makeMVReceiver.hh"
6 
8 {
9  qRegisterMetaType<qt_mf_msg>("qt_mf_msg");
10  std::vector<std::string> names = pset.get_pset_names();
11  for (auto name : names)
12  {
13  std::string pluginType = "unknown";
14  try
15  {
16  fhicl::ParameterSet plugin_pset = pset.get<fhicl::ParameterSet>(name);
17  pluginType = plugin_pset.get<std::string>("receiverType", "unknown");
18  std::unique_ptr<mfviewer::MVReceiver> rcvr = makeMVReceiver(pluginType, plugin_pset);
19  connect(rcvr.get(), SIGNAL(NewMessage(qt_mf_msg const&)), this, SLOT(onNewMessage(qt_mf_msg const&)));
20  receivers_.push_back(std::move(rcvr));
21  }
22  catch (...)
23  {
24  std::cerr << "ReceiverManager: Unable to load receiver plugin with name " << name << " and plugin type "
25  << pluginType << std::endl;
26  }
27  }
28 }
29 
31 {
32  stop();
33  for (auto& i : receivers_) i.reset(nullptr);
34 }
35 
37 {
38  for (auto& receiver : receivers_)
39  {
40  receiver->stop();
41  }
42  for (auto& receiver : receivers_)
43  {
44  receiver->wait();
45  }
46 }
47 
49 {
50  for (auto& receiver : receivers_)
51  {
52  receiver->start();
53  }
54 }
55 
56 void mfviewer::ReceiverManager::onNewMessage(qt_mf_msg const& mfmsg) { emit newMessage(mfmsg); }
ReceiverManager(fhicl::ParameterSet pset)
ReceiverManager Constructor
void start()
Start all receivers
Qt wrapper around MessageFacility message
Definition: qt_mf_msg.hh:36
virtual ~ReceiverManager()
ReceiverManager Destructor
void stop()
Stop all receivers