artdaq
v3_01_00
|
Receives Fragment objects from one or more DataSenderManager instances using TransferInterface plugins DataReceiverMaanger runs a reception thread for each source, and can automatically suppress reception from sources which are going faster than the others. More...
#include <artdaq/DAQrate/FragmentReceiverManager.hh>
Public Member Functions | |
FragmentReceiverManager (const fhicl::ParameterSet &ps) | |
FragmentReceiverManager Constructor. More... | |
virtual | ~FragmentReceiverManager () |
FragmentReceiverManager Destructor. | |
FragmentPtr | recvFragment (int &rank, size_t timeout_usec=0) |
Receive a Fragment. More... | |
size_t | count () const |
Return the count of Fragment objects received by this FragmentReceiverManager. More... | |
size_t | slotCount (size_t rank) const |
Get the count of Fragment objects received by this FragmentReceiverManager from a given source. More... | |
size_t | byteCount () const |
Get the total size of all data recieved by this FragmentReceiverManager. More... | |
void | start_threads () |
Start receiver threads for all enabled sources. | |
std::set< int > | enabled_sources () const |
Get the list of enabled sources. More... | |
Receives Fragment objects from one or more DataSenderManager instances using TransferInterface plugins DataReceiverMaanger runs a reception thread for each source, and can automatically suppress reception from sources which are going faster than the others.
Definition at line 27 of file FragmentReceiverManager.hh.
|
explicit |
FragmentReceiverManager Constructor.
ps | ParameterSet used to configure the FragmentReceiverManager |
* FragmentReceiverManager accepts the following Parameters: * "auto_suppression_enabled" (Default: true): Whether to suppress a source that gets too far ahead * "max_receive_difference" (Default: 50): Threshold (in sequence ID) for suppressing a source * "receive_timeout_usec" (Default: 100000): The timeout for receive operations * "enabled_sources" (OPTIONAL): List of sources which are enabled. If not specified, all sources are assumed enabled * "sources" (Default: blank table): FHiCL table containing TransferInterface configurations for each source. * NOTE: "source_rank" MUST be specified (and unique) for each source! *
Definition at line 10 of file FragmentReceiverManager.cc.
|
inline |
Get the total size of all data recieved by this FragmentReceiverManager.
Definition at line 229 of file FragmentReceiverManager.hh.
|
inline |
Return the count of Fragment objects received by this FragmentReceiverManager.
Definition at line 213 of file FragmentReceiverManager.hh.
|
inline |
Get the list of enabled sources.
Definition at line 88 of file FragmentReceiverManager.hh.
artdaq::FragmentPtr artdaq::FragmentReceiverManager::recvFragment | ( | int & | rank, |
size_t | timeout_usec = 0 |
||
) |
Receive a Fragment.
[out] | rank | Rank of sender that sent the Fragment, or RECV_TIMEOUT |
timeout_usec | Timeout to wait for a Fragment to become ready |
Definition at line 139 of file FragmentReceiverManager.cc.
|
inline |
Get the count of Fragment objects received by this FragmentReceiverManager from a given source.
rank | Source rank to get count for |
Definition at line 221 of file FragmentReceiverManager.hh.