LCOV - code coverage report
Current view: top level - artdaq/TransferPlugins - Null_transfer.cc (source / functions) Coverage Total Hit
Test: artdaq.info.cleaned Lines: 0.0 % 12 0
Test Date: 2025-09-04 00:45:34 Functions: 0.0 % 11 0

            Line data    Source code
       1              : #include "artdaq/TransferPlugins/TransferInterface.hh"
       2              : 
       3              : namespace artdaq {
       4              : /**
       5              :  * \brief NullTransfer does not send or receive data, but acts as if it did
       6              :  */
       7              : class NullTransfer : public TransferInterface
       8              : {
       9              : public:
      10              :         /**
      11              :          * \brief NullTransfer constructor
      12              :          * \param pset ParameterSet used to configure TransferInterface
      13              :          * \param role Role of this NullTransfer instance (kSend or kReceive)
      14              :          *
      15              :          * NullTransfer only requires the Parameters for configuring a TransferInterface
      16              :          */
      17              :         NullTransfer(const fhicl::ParameterSet& pset, Role role);
      18              : 
      19              :         /**
      20              :          * \brief NullTransfer default Destructor
      21              :          */
      22            0 :         ~NullTransfer() override = default;
      23              : 
      24              :         /**
      25              :          * \brief Pretend to receive a Fragment
      26              :          * \return Source Rank (Success code)
      27              :          *
      28              :          * WARNING: This function may create unintended side-effets. NullTransfer should
      29              :          * only really be used in Role::kSend!
      30              :          */
      31            0 :         int receiveFragment(artdaq::Fragment& /*fragment*/, size_t /*receiveTimeout*/) override { return source_rank(); }
      32              : 
      33              :         /**
      34              :          * \brief Pretend to receive a Fragment Header
      35              :          * \return Source Rank (Success code)
      36              :          *
      37              :          * WARNING: This function may create unintended side-effets. NullTransfer should
      38              :          * only really be used in Role::kSend!
      39              :          */
      40            0 :         int receiveFragmentHeader(detail::RawFragmentHeader& /*header*/, size_t /*receiveTimeout*/) override { return source_rank(); }
      41              : 
      42              :         /**
      43              :          * \brief Pretend to receive Fragment Data
      44              :          * \return Source Rank (Success code)
      45              :          *
      46              :          * WARNING: This function may create unintended side-effets. NullTransfer should
      47              :          * only really be used in Role::kSend!
      48              :          */
      49            0 :         int receiveFragmentData(RawDataType* /*destination*/ /*destination*/ /*destination*/ /*destination*/, size_t /*wordCount*/) override { return source_rank(); }
      50              : 
      51              :         /**
      52              :          * \brief Pretend to send a Fragment to a destination
      53              :          * \return CopyStatus::kSuccess (No-Op)
      54              :          */
      55            0 :         CopyStatus transfer_fragment_min_blocking_mode(artdaq::Fragment const& /*fragment*/, size_t /*send_timeout_usec*/) override
      56              :         {
      57            0 :                 return CopyStatus::kSuccess;
      58              :         }
      59              : 
      60              :         /**
      61              :          * \brief Pretend to send a Fragment to a destination
      62              :          * \return CopyStatus::kSuccess (No-Op)
      63              :          */
      64            0 :         CopyStatus transfer_fragment_reliable_mode(artdaq::Fragment&& /*fragment*/) override { return CopyStatus::kSuccess; }
      65              : 
      66              :         /**
      67              :          * \brief Determine whether the TransferInterface plugin is able to send/receive data
      68              :          * \return True if the TransferInterface plugin is currently able to send/receive data
      69              :          */
      70            0 :         bool isRunning() override { return true; }
      71              : 
      72              :         /**
      73              :          * \brief Flush any in-flight data. This should be used by the receiver after the receive loop has
      74              :          * ended.
      75              :          */
      76            0 :         void flush_buffers() override {}
      77              : 
      78              : private:
      79              :         NullTransfer(NullTransfer const&) = delete;
      80              :         NullTransfer(NullTransfer&&) = delete;
      81              :         NullTransfer& operator=(NullTransfer const&) = delete;
      82              :         NullTransfer& operator=(NullTransfer&&) = delete;
      83              : };
      84              : }  // namespace artdaq
      85              : 
      86            0 : artdaq::NullTransfer::NullTransfer(const fhicl::ParameterSet& pset, Role role)
      87            0 :     : TransferInterface(pset, role) {}
      88              : 
      89            0 : DEFINE_ARTDAQ_TRANSFER(artdaq::NullTransfer)
        

Generated by: LCOV version 2.0-1