artdaq  v3_07_01
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, std::shared_ptr< SharedMemoryEventManager > shm)
 DataReceiverManager Constructor. More...
 
virtual ~DataReceiverManager ()
 DataReceiverManager Destructor.
 
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.
 
void stop_threads ()
 Stop receiver threads.
 
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...
 
std::shared_ptr
< SharedMemoryEventManager
getSharedMemoryEventManager () const
 Get a handle to the SharedMemoryEventManager connected to this DataReceiverManager. More...
 
std::shared_ptr
< detail::FragCounter
GetReceivedFragmentCount ()
 Get a pointer to the FragCounter instance tracking the number of received Fragments. 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 26 of file DataReceiverManager.hh.

Constructor & Destructor Documentation

artdaq::DataReceiverManager::DataReceiverManager ( const fhicl::ParameterSet &  ps,
std::shared_ptr< SharedMemoryEventManager shm 
)
explicit

DataReceiverManager Constructor.

Parameters
psParameterSet used to configure the DataReceiverManager
shmPointer to SharedMemoryEventManager instance (destination for received data)
* 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 11 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 144 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 130 of file DataReceiverManager.hh.

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

Get the list of enabled sources.

Returns
The list of enabled sources

Definition at line 191 of file DataReceiverManager.cc.

std::shared_ptr<detail::FragCounter> artdaq::DataReceiverManager::GetReceivedFragmentCount ( )
inline

Get a pointer to the FragCounter instance tracking the number of received Fragments.

Returns
Pointer to the FragCounter instance tracking the number of recevied Fragments

Definition at line 102 of file DataReceiverManager.hh.

std::shared_ptr<SharedMemoryEventManager> artdaq::DataReceiverManager::getSharedMemoryEventManager ( ) const
inline

Get a handle to the SharedMemoryEventManager connected to this DataReceiverManager.

Returns
shared_ptr to SharedMemoryEventManager instance

Definition at line 96 of file DataReceiverManager.hh.

std::set< int > artdaq::DataReceiverManager::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 201 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 137 of file DataReceiverManager.hh.


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