artdaq  v2_03_00
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Pages
Public Member Functions | List of all members
artdaq::DataReceiverManager Class Reference

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. More...
 
virtual ~DataReceiverManager ()
 DataReceiverManager 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 DataReceiverManager. More...
 
size_t slotCount (size_t rank) const
 Get the count of Fragment objects received by this DataReceiverManager from a given source. More...
 
size_t byteCount () const
 Get the total size of all data recieved by this DataReceiverManager. More...
 
void start_threads ()
 Start receiver threads for all enabled sources.
 
std::set< int > enabled_sources () const
 Get the list of enabled sources. More...
 
void suppress_source (int source)
 Suppress the given source. More...
 
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) More...
 

Detailed Description

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.

Constructor & Destructor Documentation

artdaq::DataReceiverManager::DataReceiverManager ( const fhicl::ParameterSet &  ps)
explicit

DataReceiverManager Constructor.

Parameters
psParameterSet 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.

Member Function Documentation

size_t artdaq::DataReceiverManager::byteCount ( ) const
inline

Get the total size of all data recieved by this DataReceiverManager.

Returns
The total size of all data received 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.

Returns
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.

Returns
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.

Parameters
[out]rankRank of sender that sent the Fragment, or RECV_TIMEOUT
timeout_usecTimeout to wait for a Fragment to become ready
Returns
Pointer to received Fragment. May be nullptr if no Fragments are ready

Definition at line 131 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)

Parameters
source_rankRank from which the rejected Fragment came
fragFragment to return to the store

This function will automatically suppress source_rank

Definition at line 112 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.

Parameters
rankSource rank to get count for
Returns
The count of Fragment objects received by this DataReceiverManager from the source

Definition at line 221 of file DataReceiverManager.hh.

void artdaq::DataReceiverManager::suppress_source ( int  source)

Suppress the given source.

Parameters
sourceSource rank to suppress

Definition at line 107 of file DataReceiverManager.cc.


The documentation for this class was generated from the following files: