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. | |
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. |
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.
artdaq::DataSenderManager::DataSenderManager | ( | const fhicl::ParameterSet & | ps | ) | [explicit] |
DataSenderManager Constructor.
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 * "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.
size_t artdaq::DataSenderManager::count | ( | ) | const [inline] |
Return the count of Fragment objects sent by this DataSenderManagerq.
Definition at line 137 of file DataSenderManager.hh.
size_t artdaq::DataSenderManager::destinationCount | ( | ) | const [inline] |
Get 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.
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.
Definition at line 257 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.
frag | Fragment to sent |
Definition at line 311 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.
rank | Destination rank to get count for |
Definition at line 145 of file DataSenderManager.hh.