artdaq  v3_07_01
Null_transfer.cc
1 #include "artdaq/TransferPlugins/TransferInterface.hh"
2 
3 namespace artdaq {
8 {
9 public:
17  NullTransfer(const fhicl::ParameterSet& pset, Role role);
18 
22  virtual ~NullTransfer() = default;
23 
31  int receiveFragment(artdaq::Fragment&, size_t) override { return source_rank(); }
32 
40  int receiveFragmentHeader(detail::RawFragmentHeader&, size_t) override { return source_rank(); }
41 
49  int receiveFragmentData(RawDataType*, size_t) override { return source_rank(); }
50 
55  CopyStatus transfer_fragment_min_blocking_mode(artdaq::Fragment const&, size_t) override
56  {
57  return CopyStatus::kSuccess;
58  }
59 
64  CopyStatus transfer_fragment_reliable_mode(artdaq::Fragment&&) override { return CopyStatus::kSuccess; }
65 
70  bool isRunning() override { return true; }
71 
76  void flush_buffers() override {}
77 };
78 } // namespace artdaq
79 
80 artdaq::NullTransfer::NullTransfer(const fhicl::ParameterSet& pset, Role role)
81  : TransferInterface(pset, role) {}
82 
83 DEFINE_ARTDAQ_TRANSFER(artdaq::NullTransfer)
virtual int source_rank() const
Get the source rank for this TransferInterface instance.
bool isRunning() override
Determine whether the TransferInterface plugin is able to send/receive data.
NullTransfer(const fhicl::ParameterSet &pset, Role role)
NullTransfer constructor.
Role role() const
Get the TransferInterface::Role of this TransferInterface.
NullTransfer does not send or receive data, but acts as if it did.
Definition: Null_transfer.cc:7
int receiveFragmentHeader(detail::RawFragmentHeader &, size_t) override
Pretend to receive a Fragment Header.
CopyStatus transfer_fragment_min_blocking_mode(artdaq::Fragment const &, size_t) override
Pretend to send a Fragment to a destination.
virtual ~NullTransfer()=default
NullTransfer default Destructor.
Role
Used to determine if a TransferInterface is a Sender or Receiver.
CopyStatus transfer_fragment_reliable_mode(artdaq::Fragment &&) override
Pretend to send a Fragment to a destination.
int receiveFragment(artdaq::Fragment &, size_t) override
Pretend to receive a Fragment.
The send operation completed successfully.
void flush_buffers() override
Flush any in-flight data. This should be used by the receiver after the receive loop has ended...
This interface defines the functions used to transfer data between artdaq applications.
int receiveFragmentData(RawDataType *, size_t) override
Pretend to receive Fragment Data.
CopyStatus
Returned from the send functions, this enumeration describes the possible return codes. If an exception occurs, it will be thrown and should be handled normally.