The AutodetectTransfer TransferInterface plugin sets up a Shmem_transfer plugin or TCPSocket_transfer plugin depending if the source and destination are on the same host, to maximize throughput. More...
Public Member Functions | |
AutodetectTransfer (const fhicl::ParameterSet &pset, Role role) | |
AutodetectTransfer Constructor. | |
virtual | ~AutodetectTransfer () |
AutodetectTransfer default Destructor. | |
int | receiveFragment (artdaq::Fragment &fragment, size_t receiveTimeout) override |
Receive a Fragment, using the underlying transfer plugin. | |
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 |
Send a Fragment in non-reliable mode, using the underlying transfer plugin. | |
CopyStatus | moveFragment (artdaq::Fragment &&fragment) override |
Send a Fragment in reliable mode, using the underlying transfer plugin. | |
bool | isRunning () override |
Determine whether the TransferInterface plugin is able to send/receive data. |
The AutodetectTransfer TransferInterface plugin sets up a Shmem_transfer plugin or TCPSocket_transfer plugin depending if the source and destination are on the same host, to maximize throughput.
Definition at line 15 of file Autodetect_transfer.cc.
artdaq::AutodetectTransfer::AutodetectTransfer | ( | const fhicl::ParameterSet & | pset, | |
Role | role | |||
) |
AutodetectTransfer Constructor.
pset | ParameterSet used to configure AutodetectTransfer | |
role | Role of this TransferInterface, either kReceive or kSend |
Definition at line 97 of file Autodetect_transfer.cc.
CopyStatus artdaq::AutodetectTransfer::copyFragment | ( | artdaq::Fragment & | fragment, | |
size_t | send_timeout_usec | |||
) | [inline, override, virtual] |
Send a Fragment in non-reliable mode, using the underlying transfer plugin.
fragment | The Fragment to send | |
send_timeout_usec | How long to wait before aborting. Defaults to size_t::MAX_VALUE |
Implements artdaq::TransferInterface.
Definition at line 70 of file Autodetect_transfer.cc.
bool artdaq::AutodetectTransfer::isRunning | ( | ) | [inline, override, virtual] |
Determine whether the TransferInterface plugin is able to send/receive data.
Reimplemented from artdaq::TransferInterface.
Definition at line 90 of file Autodetect_transfer.cc.
CopyStatus artdaq::AutodetectTransfer::moveFragment | ( | artdaq::Fragment && | fragment | ) | [inline, override, virtual] |
Send a Fragment in reliable mode, using the underlying transfer plugin.
fragment | The Fragment to send | |
send_timeout_usec | How long to wait before aborting. Defaults to size_t::MAX_VALUE |
Implements artdaq::TransferInterface.
Definition at line 81 of file Autodetect_transfer.cc.
int artdaq::AutodetectTransfer::receiveFragment | ( | artdaq::Fragment & | fragment, | |
size_t | receiveTimeout | |||
) | [inline, override, virtual] |
Receive a Fragment, using the underlying transfer plugin.
fragment | Output Fragment | |
receiveTimeout | Time to wait before returning TransferInterface::RECV_TIMEOUT |
Reimplemented from artdaq::TransferInterface.
Definition at line 36 of file Autodetect_transfer.cc.
int artdaq::AutodetectTransfer::receiveFragmentData | ( | RawDataType * | destination, | |
size_t | wordCount | |||
) | [inline, 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 59 of file Autodetect_transfer.cc.
int artdaq::AutodetectTransfer::receiveFragmentHeader | ( | detail::RawFragmentHeader & | header, | |
size_t | receiveTimeout | |||
) | [inline, 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 48 of file Autodetect_transfer.cc.