artdaq::ShmemTransfer Class Reference

A TransferInterface implementation plugin that transfers data using Shared Memory. More...

#include <artdaq/TransferPlugins/ShmemTransfer.hh>

Inheritance diagram for artdaq::ShmemTransfer:
artdaq::TransferInterface

List of all members.

Classes

struct  ShmBuffer
struct  ShmStruct

Public Member Functions

 ShmemTransfer (fhicl::ParameterSet const &pset, Role role)
 ShmemTransfer Constructor.
virtual ~ShmemTransfer () noexcept
 ShmemTransfer Destructor.
int receiveFragment (Fragment &fragment, size_t receiveTimeout) override
 Receive a Fragment from Shared Memory.
CopyStatus copyFragment (Fragment &fragment, size_t send_timeout_usec=std::numeric_limits< size_t >::max()) override
 Copy a Fragment to the destination. May be unreliable.
CopyStatus moveFragment (Fragment &&fragment, size_t send_timeout_usec=std::numeric_limits< size_t >::max()) override
 Move a Fragment to the destination.

Detailed Description

A TransferInterface implementation plugin that transfers data using Shared Memory.

Definition at line 19 of file ShmemTransfer.hh.


Constructor & Destructor Documentation

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

ShmemTransfer Constructor.

Parameters:
pset ParameterSet used to configure ShmemTransfer
role Role of this ShmemTransfer instance (kSend or kReceive)
		 * ShmemTransfer accepts the following Parameters:
		 * "shm_key" (Default: hash of uniqueLabel): Key to use for shared memory segment
		 * 

ShmemTransfer also requires all Parameters for configuring a TransferInterface

Definition at line 8 of file Shmem_transfer.cc.


Member Function Documentation

CopyStatus artdaq::ShmemTransfer::copyFragment ( Fragment &  fragment,
size_t  send_timeout_usec = std::numeric_limits< size_t >::max() 
) [override]

Copy a Fragment to the destination. May be unreliable.

Parameters:
fragment Fragment to copy
send_timeout_usec Timeout for send, in microseconds (default size_t::MAX_VALUE)
Returns:
CopyStatus detailing result of copy
CopyStatus artdaq::ShmemTransfer::moveFragment ( Fragment &&  fragment,
size_t  send_timeout_usec = std::numeric_limits< size_t >::max() 
) [override]

Move a Fragment to the destination.

Parameters:
fragment Fragment to move
send_timeout_usec Timeout for send, in microseconds (default size_t::MAX_VALUE)
Returns:
CopyStatus detailing result of move
int artdaq::ShmemTransfer::receiveFragment ( Fragment &  fragment,
size_t  receiveTimeout 
) [override]

Receive a Fragment from Shared Memory.

Parameters:
[out] fragment Received Fragment
receiveTimeout Timeout for receive, in microseconds
Returns:
Rank of sender or RECV_TIMEOUT

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator

Generated on 1 Jun 2017 for artdaq by  doxygen 1.6.1