artdaq
v3_00_03
|
The interface through which RoutingMasterCore obtains Routing Tables using received Routing Tokens. More...
#include <artdaq/Application/Routing/RoutingMasterPolicy.hh>
Public Member Functions | |
RoutingMasterPolicy (fhicl::ParameterSet ps) | |
RoutingMasterPolicy Constructor. More... | |
virtual | ~RoutingMasterPolicy ()=default |
Default virtual Destructor. | |
virtual detail::RoutingPacket | GetCurrentTable ()=0 |
Generate a Routing Table using received tokens. More... | |
size_t | GetReceiverCount () const |
Get the number of configured receivers. More... | |
size_t | GetMaxNumberOfTokens () const |
Get the largest number of tokens that the RoutingMasterPolicy has seen at any one time. More... | |
void | AddReceiverToken (int rank, unsigned new_slots_free) |
Add a token to the token list. More... | |
void | Reset () |
Reset the policy, setting the next sequence ID to be used to 0. | |
Protected Member Functions | |
std::unique_ptr< std::deque < int > > | getTokensSnapshot () |
Gets the current token list, used for building Routing Tables. | |
void | addUnusedTokens (std::unique_ptr< std::deque< int >> tokens) |
If necessary, return unused tokens to the token list, for subsequent updates. | |
Protected Attributes | |
Fragment::sequence_id_t | next_sequence_id_ |
The next sequence ID to be assigned. | |
The interface through which RoutingMasterCore obtains Routing Tables using received Routing Tokens.
Definition at line 18 of file RoutingMasterPolicy.hh.
|
explicit |
RoutingMasterPolicy Constructor.
ps | ParameterSet used to configure the RoutingMasterPolicy |
* RoutingMasterPolicy accepts the following Parameters: * "receiver_ranks" (REQUIRED): A list of integers indicating the ranks that the RoutingMasterPolicy should expect tokens from *
Definition at line 4 of file RoutingMasterPolicy.cc.
void artdaq::RoutingMasterPolicy::AddReceiverToken | ( | int | rank, |
unsigned | new_slots_free | ||
) |
Add a token to the token list.
rank | Rank that the token is from |
new_slots_free | Number of slots that are now free (should usually be 1) |
Definition at line 13 of file RoutingMasterPolicy.cc.
|
pure virtual |
Generate a Routing Table using received tokens.
This function is pure virtual, it should be overridden by derived classes.
Implemented in artdaq::CapacityTestPolicy, artdaq::RoundRobinPolicy, and artdaq::NoOpPolicy.
|
inline |
Get the largest number of tokens that the RoutingMasterPolicy has seen at any one time.
Definition at line 54 of file RoutingMasterPolicy.hh.
|
inline |
Get the number of configured receivers.
Definition at line 48 of file RoutingMasterPolicy.hh.