artdaq::TCPSocketTransfer Class Reference

TransferInterface implementation plugin that sends data using TCP sockets. More...

#include <artdaq/TransferPlugins/TCPSocketTransfer.hh>

Inheritance diagram for artdaq::TCPSocketTransfer:
artdaq::TransferInterface

List of all members.

Public Member Functions

 TCPSocketTransfer (fhicl::ParameterSet const &ps, Role role)
 TCPSocketTransfer Constructor.
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 (Fragment &frag, size_t timeout_usec) override
 Copy a Fragment to the destination. Same implementation as moveFragment, as TCP is always reliable.
CopyStatus moveFragment (Fragment &&frag) override
 Move a Fragment to the destination.
bool isRunning () override
 Determine whether the TransferInterface plugin is able to send/receive data.

Detailed Description

TransferInterface implementation plugin that sends data using TCP sockets.

Definition at line 40 of file TCPSocketTransfer.hh.


Constructor & Destructor Documentation

artdaq::TCPSocketTransfer::TCPSocketTransfer ( fhicl::ParameterSet const &  ps,
TransferInterface::Role  role 
)

TCPSocketTransfer Constructor.

Parameters:
ps ParameterSet used to configure TCPSocketTransfer
role Role of this TCPSocketTransfer instance (kSend or kReceive)
	 * TCPSocketTransfer accepts the following Parameters:
	 * "tcp_receive_buffer_size" (Default: 0): The TCP buffer size on the receive socket
	 * "send_retry_timeout_us" (Default: 1000000): Microseconds between send retries (infinite retries for moveFragment, up to send_timeout_us for copyFragment)
	 * "host_map" (REQUIRED): List of FHiCL tables containing information about other hosts in the system.
	 *   Each table should contain:
	 *   "rank" (Default: RECV_TIMEOUT): Rank of this host
	 *   "host" (Default: "localhost"): Hostname of this host
	 *   "portOffset" (Default: 5500): To avoid collisions, each destination should specify its own port offset.
	 *     All TCPSocketTransfers sending to that destination will add their own rank to make a unique port number.
	 * 

TCPSocketTransfer also requires all Parameters for configuring a TransferInterface

Definition at line 41 of file TCPSocket_transfer.cc.


Member Function Documentation

CopyStatus artdaq::TCPSocketTransfer::copyFragment ( Fragment &  frag,
size_t  timeout_usec 
) [inline, override]

Copy a Fragment to the destination. Same implementation as moveFragment, as TCP is always reliable.

Parameters:
frag Fragment to copy
timeout_usec Timeout for send, in microseconds
Returns:
CopyStatus detailing result of copy

Definition at line 87 of file TCPSocketTransfer.hh.

bool artdaq::TCPSocketTransfer::isRunning (  )  [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 571 of file TCPSocket_transfer.cc.

CopyStatus artdaq::TCPSocketTransfer::moveFragment ( Fragment &&  frag  )  [inline, override]

Move a Fragment to the destination.

Parameters:
frag Fragment to move
Returns:
CopyStatus detailing result of copy

Definition at line 94 of file TCPSocketTransfer.hh.

int artdaq::TCPSocketTransfer::receiveFragmentData ( RawDataType *  destination,
size_t  wordCount 
) [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 RawDataType words to receive
Returns:
The rank the Fragment was received from (should be source_rank), or RECV_TIMEOUT

Implements artdaq::TransferInterface.

Definition at line 381 of file TCPSocket_transfer.cc.

int artdaq::TCPSocketTransfer::receiveFragmentHeader ( detail::RawFragmentHeader &  header,
size_t  receiveTimeout 
) [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 122 of file TCPSocket_transfer.cc.


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

Generated on 25 Sep 2018 for artdaq by  doxygen 1.6.1