artdaq
v3_01_00
|
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. | |
std::pair< int, TransferInterface::CopyStatus > | 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... | |
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.
|
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 * "send_timeout_usec" (Default: 5000000 (5 seconds): Timeout for sends in non-reliable modes (broadcast and nonblocking) * "send_retry_count" (Default: 2): Number of times to retry a send in non-reliable mode * "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 16 of file DataSenderManager.cc.
|
inline |
Return the count of Fragment objects sent by this DataSenderManagerq.
Definition at line 142 of file DataSenderManager.hh.
|
inline |
Get the number of configured destinations.
Definition at line 85 of file DataSenderManager.hh.
|
inline |
Get the list of enabled destinations.
Definition at line 91 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 287 of file DataSenderManager.cc.
std::pair< int, artdaq::TransferInterface::CopyStatus > 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 342 of file DataSenderManager.cc.
|
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 150 of file DataSenderManager.hh.