MulticastTransfer is a TransferInterface implementation plugin that transfers data using Multicast. More...
Classes | |
class | subfragment_identifier |
Public Member Functions | |
virtual | ~MulticastTransfer () |
< Copy Fragment::byte_t into local scope | |
MulticastTransfer (fhicl::ParameterSet const &ps, Role role) | |
MulticastTransfer Constructor. | |
int | receiveFragment (artdaq::Fragment &fragment, size_t receiveTimeout) override |
Receive a Fragment using Multicast. | |
int | receiveFragmentHeader (detail::RawFragmentHeader &header, size_t receiveTimeout) override |
Receive a Fragment Header from the transport mechanism. | |
int | receiveFragmentData (RawDataType *destination, size_t wordCount) override |
Receive the body of a Fragment to the given destination pointer. | |
CopyStatus | copyFragment (artdaq::Fragment &fragment, size_t send_timeout_usec) override |
Copy a Fragment to the destination. Multicast is always unreliable. | |
CopyStatus | moveFragment (artdaq::Fragment &&fragment) override |
Move a Fragment to the destination. Multicast is always unreliable. | |
bool | isRunning () override |
Determine whether the TransferInterface plugin is able to send/receive data. |
MulticastTransfer is a TransferInterface implementation plugin that transfers data using Multicast.
Definition at line 30 of file Multicast_transfer.cc.
virtual artdaq::MulticastTransfer::~MulticastTransfer | ( | ) | [virtual] |
< Copy Fragment::byte_t into local scope
Default destructor
artdaq::MulticastTransfer::MulticastTransfer | ( | fhicl::ParameterSet const & | ps, | |
Role | role | |||
) |
MulticastTransfer Constructor.
ps | ParameterSet used to configure MulticastTransfer | |
role | Role of this MulticastTransfer instance (kSend or kReceive) |
* MulticastTransfer accepts the following Parameters: * "subfragment_size" (REQUIRED): Size of the sub-Fragments * "subfragments_per_send" (REQUIRED): How many sub-Fragments to send in each batch * "pause_on_copy_usecs" (Default: 0): Pause after sending a batch of sub-Fragments for this many microseconds * "multicast_port" (REQUIRED): Port number to connect to * "multicast_address" (REQUIRED): Multicast address to send to/receive from * "local_address" (REQUIRED): Local origination address for multicast * "receive_buffer_size" (Default: 0): The UDP receive buffer size. 0 uses automatic size. *
MulticastTransfer also requires all Parameters for configuring a TransferInterface
Definition at line 159 of file Multicast_transfer.cc.
artdaq::TransferInterface::CopyStatus artdaq::MulticastTransfer::copyFragment | ( | artdaq::Fragment & | fragment, | |
size_t | send_timeout_usec | |||
) | [override, virtual] |
Copy a Fragment to the destination. Multicast is always unreliable.
fragment | Fragment to copy |
Implements artdaq::TransferInterface.
Definition at line 412 of file Multicast_transfer.cc.
bool artdaq::MulticastTransfer::isRunning | ( | ) | [inline, override, virtual] |
Determine whether the TransferInterface plugin is able to send/receive data.
Reimplemented from artdaq::TransferInterface.
Definition at line 103 of file Multicast_transfer.cc.
artdaq::TransferInterface::CopyStatus artdaq::MulticastTransfer::moveFragment | ( | artdaq::Fragment && | fragment | ) | [override, virtual] |
Move a Fragment to the destination. Multicast is always unreliable.
fragment | Fragment to move |
Implements artdaq::TransferInterface.
Definition at line 406 of file Multicast_transfer.cc.
int artdaq::MulticastTransfer::receiveFragment | ( | artdaq::Fragment & | fragment, | |
size_t | receiveTimeout | |||
) | [override, virtual] |
Receive a Fragment using Multicast.
[out] | fragment | Received Fragment |
receiveTimeout | Timeout for receive, in microseconds |
Reimplemented from artdaq::TransferInterface.
Definition at line 242 of file Multicast_transfer.cc.
int artdaq::MulticastTransfer::receiveFragmentData | ( | RawDataType * | destination, | |
size_t | wordCount | |||
) | [override, virtual] |
Receive the body of a Fragment to the given destination pointer.
destination | Pointer to memory region where Fragment data should be stored | |
wordCount | Number of words of Fragment data to receive |
Implements artdaq::TransferInterface.
Definition at line 393 of file Multicast_transfer.cc.
int artdaq::MulticastTransfer::receiveFragmentHeader | ( | detail::RawFragmentHeader & | header, | |
size_t | receiveTimeout | |||
) | [override, virtual] |
Receive a Fragment Header from the transport mechanism.
[out] | header | Received Fragment Header |
receiveTimeout | Timeout for receive |
Implements artdaq::TransferInterface.
Definition at line 382 of file Multicast_transfer.cc.