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>

List of all members.

Public Member Functions

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

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:
ps ParameterSet 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
	 *   "routing_retry_count" (Default: 5): Number of times to retry calculating destination before giving up (DROPPING DATA!)
	 * "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 140 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 83 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 89 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 261 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:
frag Fragment to sent
Returns:
Rank of destination for Fragment

Definition at line 315 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:
rank Destination rank to get count for
Returns:
The count of Fragment objects sent by this DataSenderManager to the destination

Definition at line 148 of file DataSenderManager.hh.


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

Generated on 27 Jan 2018 for artdaq by  doxygen 1.6.1