|
artdaq
v3_09_05
|
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... | |
| std::set< int > | running_sources () const |
| Get the list of sources which are still receiving data. 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 26 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 11 of file FragmentReceiverManager.cc.
|
inline |
Get the total size of all data recieved by this FragmentReceiverManager.
Definition at line 236 of file FragmentReceiverManager.hh.
|
inline |
Return the count of Fragment objects received by this FragmentReceiverManager.
Definition at line 222 of file FragmentReceiverManager.hh.
| std::set< int > artdaq::FragmentReceiverManager::enabled_sources | ( | ) | const |
Get the list of enabled sources.
Definition at line 239 of file FragmentReceiverManager.cc.
| 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 180 of file FragmentReceiverManager.cc.
| std::set< int > artdaq::FragmentReceiverManager::running_sources | ( | ) | const |
Get the list of sources which are still receiving data.
Definition at line 226 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 229 of file FragmentReceiverManager.hh.