$treeview $search $mathjax $extrastylesheet
artdaq  v3_04_00
$projectbrief
$projectbrief
$searchbox

artdaq::FragmentReceiverManager 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/FragmentReceiverManager.hh>

List of all members.

Public Member Functions

 FragmentReceiverManager (const fhicl::ParameterSet &ps)
 FragmentReceiverManager Constructor.
virtual ~FragmentReceiverManager ()
 FragmentReceiverManager 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 FragmentReceiverManager.
size_t slotCount (size_t rank) const
 Get the count of Fragment objects received by this FragmentReceiverManager from a given source.
size_t byteCount () const
 Get the total size of all data recieved by this FragmentReceiverManager.
void start_threads ()
 Start receiver threads for all enabled sources.
std::set< int > enabled_sources () const
 Get the list of enabled sources.
std::set< int > running_sources () const
 Get the list of sources which are still receiving data.

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 27 of file FragmentReceiverManager.hh.


Constructor & Destructor Documentation

artdaq::FragmentReceiverManager::FragmentReceiverManager ( const fhicl::ParameterSet &  ps  )  [explicit]

FragmentReceiverManager Constructor.

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


Member Function Documentation

size_t artdaq::FragmentReceiverManager::byteCount (  )  const [inline]

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

Returns:
The total size of all data received by this FragmentReceiverManager

Definition at line 237 of file FragmentReceiverManager.hh.

size_t artdaq::FragmentReceiverManager::count (  )  const [inline]

Return the count of Fragment objects received by this FragmentReceiverManager.

Returns:
The count of Fragment objects received by this FragmentReceiverManager

Definition at line 221 of file FragmentReceiverManager.hh.

std::set< int > artdaq::FragmentReceiverManager::enabled_sources (  )  const

Get the list of enabled sources.

Returns:
The list of enabled sources

Definition at line 202 of file FragmentReceiverManager.cc.

artdaq::FragmentPtr artdaq::FragmentReceiverManager::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 154 of file FragmentReceiverManager.cc.

std::set< int > artdaq::FragmentReceiverManager::running_sources (  )  const

Get the list of sources which are still receiving data.

Returns:
std::set containing ranks of sources which are still receiving data

Definition at line 192 of file FragmentReceiverManager.cc.

size_t artdaq::FragmentReceiverManager::slotCount ( size_t  rank  )  const [inline]

Get the count of Fragment objects received by this FragmentReceiverManager from a given source.

Parameters:
rank Source rank to get count for
Returns:
The count of Fragment objects received by this FragmentReceiverManager from the source

Definition at line 229 of file FragmentReceiverManager.hh.


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

Generated on 5 Mar 2019 for artdaq by  doxygen 1.6.1