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>

List of all members.

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

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


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] rank Rank of sender that sent the Fragment, or RECV_TIMEOUT
timeout_usec Timeout 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_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 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:
rank Source 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:
source Source rank to suppress

Definition at line 107 of file DataReceiverManager.cc.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator

Generated on 1 Jun 2017 for artdaq by  doxygen 1.6.1