A TransferInterface implementation plugin that transfers data using Shared Memory. More...
#include <artdaq/TransferPlugins/ShmemTransfer.hh>
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. | |
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 &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. |
A TransferInterface implementation plugin that transfers data using Shared Memory.
Definition at line 14 of file ShmemTransfer.hh.
artdaq::ShmemTransfer::ShmemTransfer | ( | fhicl::ParameterSet const & | pset, | |
Role | role | |||
) |
ShmemTransfer Constructor.
pset | ParameterSet used to configure ShmemTransfer | |
role | Role of this ShmemTransfer instance (kSend or kReceive) |
* ShmemTransfer accepts the following Parameters: * "shm_key_offset" (Default: 0): Offset to add to shared memory key (hash of uniqueLabel) *
ShmemTransfer also requires all Parameters for configuring a TransferInterface
Definition at line 5 of file Shmem_transfer.cc.
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.
fragment | Fragment to copy | |
send_timeout_usec | Timeout for send, in microseconds (default size_t::MAX_VALUE) |
CopyStatus artdaq::ShmemTransfer::moveFragment | ( | Fragment && | fragment, | |
size_t | send_timeout_usec = std::numeric_limits< size_t >::max() | |||
) | [override] |
Move a Fragment to the destination.
fragment | Fragment to move | |
send_timeout_usec | Timeout for send, in microseconds (default size_t::MAX_VALUE) |
int artdaq::ShmemTransfer::receiveFragment | ( | Fragment & | fragment, | |
size_t | receiveTimeout | |||
) | [override] |
Receive a Fragment from Shared Memory.
[out] | fragment | Received Fragment |
receiveTimeout | Timeout for receive, in microseconds |
int artdaq::ShmemTransfer::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 132 of file Shmem_transfer.cc.
int artdaq::ShmemTransfer::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 93 of file Shmem_transfer.cc.