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

Sends Fragment objects using TransferInterface plugins. Uses Routing Tables if confgiured, otherwise will Round-Robin Fragments to the destinations. More...

#include <artdaq/DAQrate/DataSenderManager.hh>

Public Member Functions

 DataSenderManager (const fhicl::ParameterSet &ps)
 DataSenderManager Constructor. More...
 
virtual ~DataSenderManager ()
 DataSenderManager Destructor.
 
int sendFragment (Fragment &&frag)
 Send the given Fragment. Return the rank of the destination to which the Fragment was sent. More...
 
size_t count () const
 Return the count of Fragment objects sent by this DataSenderManagerq. More...
 
size_t slotCount (size_t rank) const
 Get the count of Fragment objects sent by this DataSenderManager to a given destination. More...
 
size_t destinationCount () const
 Get the number of configured destinations. More...
 
std::set< int > enabled_destinations () const
 Get the list of enabled destinations. More...
 
size_t GetRoutingTableEntryCount () const
 Gets the current size of the Routing Table, in case other parts of the system want to use this information. More...
 

Detailed Description

Sends Fragment objects using TransferInterface plugins. Uses Routing Tables if confgiured, otherwise will Round-Robin Fragments to the destinations.

Definition at line 26 of file DataSenderManager.hh.

Constructor & Destructor Documentation

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

DataSenderManager Constructor.

Parameters
psParameterSet used to configure the DataSenderManager
* DataSenderManager accepts the following Parameters:
* "broadcast_sends" (Default: false): Send all Fragments to all destinations
* "nonblocking_sends" (Default: false): If true, will use non-reliable mode of TransferInterface plugins
* "routing_table_config" (Default: Empty ParameterSet): FHiCL table for RoutingMaster parameters
*   "use_routing_master" (Default: false): True if using the Routing Master
*   "table_update_port" (Default: 35556): Port that table updates should arrive on
*   "table_update_address" (Default: "227.128.12.28"): Address that table updates should arrive on
*   "table_acknowledge_port" (Default: 35557): Port that acknowledgements should be sent to
*   "routing_master_hostname" (Default: "localhost"): Host that acknowledgements should be sent to
*   "routing_timeout_ms" (Default: 1000): Time to wait for a routing table update if the table is exhausted
* "destinations" (Default: Empty ParameterSet): FHiCL table for TransferInterface configurations for each destaintion
*   NOTE: "destination_rank" MUST be specified (and unique) for each destination!
* "enabled_destinations" (OPTIONAL): If specified, only the destination ranks listed will be enabled. If not specified,
* all destinations will be enabled.
* 

Definition at line 15 of file DataSenderManager.cc.

Member Function Documentation

size_t artdaq::DataSenderManager::count ( ) const
inline

Return the count of Fragment objects sent by this DataSenderManagerq.

Returns
The count of Fragment objects sent by this DataSenderManager

Definition at line 137 of file DataSenderManager.hh.

size_t artdaq::DataSenderManager::destinationCount ( ) const
inline

Get the number of configured destinations.

Returns
The number of configured destinations

Definition at line 82 of file DataSenderManager.hh.

std::set<int> artdaq::DataSenderManager::enabled_destinations ( ) const
inline

Get the list of enabled destinations.

Returns
The list of enabled destiantion ranks

Definition at line 88 of file DataSenderManager.hh.

size_t artdaq::DataSenderManager::GetRoutingTableEntryCount ( ) const

Gets the current size of the Routing Table, in case other parts of the system want to use this information.

Returns
The current size of the Routing Table. Note that the Routing Table is trimmed after each successful send.

Definition at line 258 of file DataSenderManager.cc.

int artdaq::DataSenderManager::sendFragment ( Fragment &&  frag)

Send the given Fragment. Return the rank of the destination to which the Fragment was sent.

Parameters
fragFragment to sent
Returns
Rank of destination for Fragment

Definition at line 312 of file DataSenderManager.cc.

size_t artdaq::DataSenderManager::slotCount ( size_t  rank) const
inline

Get the count of Fragment objects sent by this DataSenderManager to a given destination.

Parameters
rankDestination rank to get count for
Returns
The count of Fragment objects sent by this DataSenderManager to the destination

Definition at line 145 of file DataSenderManager.hh.


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