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/DataReceiverManager.hh>
Public Member Functions | |
DataReceiverManager (const fhicl::ParameterSet &ps) | |
DataReceiverManager Constructor. | |
virtual | ~DataReceiverManager () |
DataReceiverManager Destructor. | |
FragmentPtr | recvFragment (int &rank, size_t timeout_usec=0) |
Receive a Fragment. | |
size_t | count () const |
Return the count of Fragment objects received by this DataReceiverManager. | |
size_t | slotCount (size_t rank) const |
Get the count of Fragment objects received by this DataReceiverManager from a given source. | |
size_t | byteCount () const |
Get the total size of all data recieved by this DataReceiverManager. | |
void | start_threads () |
Start receiver threads for all enabled sources. | |
std::set< int > | enabled_sources () const |
Get the list of enabled sources. | |
void | suppress_source (int source) |
Suppress the given source. | |
void | unsuppressAll () |
Re-enable all sources. | |
void | reject_fragment (int source_rank, FragmentPtr frag) |
Place the given Fragment back in the FragmentStore (Called when the EventStore is full). |
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 28 of file DataReceiverManager.hh.
artdaq::DataReceiverManager::DataReceiverManager | ( | const fhicl::ParameterSet & | ps | ) | [explicit] |
DataReceiverManager Constructor.
ps | ParameterSet used to configure the DataReceiverManager |
* DataReceiverManager 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 7 of file DataReceiverManager.cc.
size_t artdaq::DataReceiverManager::byteCount | ( | ) | const [inline] |
Get the total size of all data recieved by this DataReceiverManager.
Definition at line 229 of file DataReceiverManager.hh.
size_t artdaq::DataReceiverManager::count | ( | ) | const [inline] |
Return the count of Fragment objects received by this DataReceiverManager.
Definition at line 213 of file DataReceiverManager.hh.
std::set<int> artdaq::DataReceiverManager::enabled_sources | ( | ) | const [inline] |
Get the list of enabled sources.
Definition at line 89 of file DataReceiverManager.hh.
artdaq::FragmentPtr artdaq::DataReceiverManager::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 129 of file DataReceiverManager.cc.
void artdaq::DataReceiverManager::reject_fragment | ( | int | source_rank, | |
FragmentPtr | frag | |||
) |
Place the given Fragment back in the FragmentStore (Called when the EventStore is full).
source_rank | Rank from which the rejected Fragment came | |
frag | Fragment to return to the store |
This function will automatically suppress source_rank
Definition at line 110 of file DataReceiverManager.cc.
size_t artdaq::DataReceiverManager::slotCount | ( | size_t | rank | ) | const [inline] |
Get the count of Fragment objects received by this DataReceiverManager from a given source.
rank | Source rank to get count for |
Definition at line 221 of file DataReceiverManager.hh.
void artdaq::DataReceiverManager::suppress_source | ( | int | source | ) |
Suppress the given source.
source | Source rank to suppress |
Definition at line 105 of file DataReceiverManager.cc.