LCOV - code coverage report
Current view: top level - /opt/artdaq/srcs/artdaq-mfextensions/mfextensions/Receivers - ReceiverManager.cc (source / functions) Coverage Total Hit
Test: artdaq.info.cleaned Lines: 0.0 % 33 0
Test Date: 2025-09-04 00:45:34 Functions: 0.0 % 6 0

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

Generated by: LCOV version 2.0-1