artdaq::AutodetectTransfer Class Reference

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...

Inheritance diagram for artdaq::AutodetectTransfer:
artdaq::TransferInterface

List of all members.

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.

Detailed Description

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.


Constructor & Destructor Documentation

artdaq::AutodetectTransfer::AutodetectTransfer ( const fhicl::ParameterSet &  pset,
Role  role 
)

AutodetectTransfer Constructor.

Parameters:
pset ParameterSet used to configure AutodetectTransfer
role Role of this TransferInterface, either kReceive or kSend

Definition at line 97 of file Autodetect_transfer.cc.


Member Function Documentation

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.

Parameters:
fragment The Fragment to send
send_timeout_usec How long to wait before aborting. Defaults to size_t::MAX_VALUE
Returns:
A TransferInterface::CopyStatus result variable

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.

Returns:
True if the TransferInterface plugin is currently 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.

Parameters:
fragment The Fragment to send
send_timeout_usec How long to wait before aborting. Defaults to size_t::MAX_VALUE
Returns:
A TransferInterface::CopyStatus result variable

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.

Parameters:
fragment Output Fragment
receiveTimeout Time to wait before returning TransferInterface::RECV_TIMEOUT
Returns:
Rank of sender

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.

Parameters:
destination Pointer to memory region where Fragment data should be stored
wordCount Number of words of Fragment data to receive
Returns:
The rank the Fragment was received from (should be source_rank), or RECV_TIMEOUT

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.

Parameters:
[out] header Received Fragment Header
receiveTimeout Timeout for receive
Returns:
The rank the Fragment was received from (should be source_rank), or RECV_TIMEOUT

Implements artdaq::TransferInterface.

Definition at line 48 of file Autodetect_transfer.cc.


The documentation for this class was generated from the following file:

Generated on 7 May 2018 for artdaq by  doxygen 1.6.1