artdaq  v3_09_01
NoOp_policy.cc
1 #include <utility>
2 
3 #include "artdaq/RoutingPolicies/PolicyMacros.hh"
4 #include "artdaq/RoutingPolicies/RoutingManagerPolicy.hh"
5 #include "fhiclcpp/ParameterSet.h"
6 #include "tracemf.h"
7 #define TRACE_NAME "NoOp_policy"
8 namespace artdaq {
13 {
14 public:
21  explicit NoOpPolicy(fhicl::ParameterSet const& ps)
22  : RoutingManagerPolicy(ps) {}
23 
27  ~NoOpPolicy() override = default;
28 
34 
35 private:
36  NoOpPolicy(NoOpPolicy const&) = delete;
37  NoOpPolicy(NoOpPolicy&&) = delete;
38  NoOpPolicy& operator=(NoOpPolicy const&) = delete;
39  NoOpPolicy& operator=(NoOpPolicy&&) = delete;
40 };
41 
43 {
44  TLOG(12) << "NoOpPolicy::GetCurrentTable start";
45  auto tokens = getTokensSnapshot();
46  detail::RoutingPacket output;
47  for (auto token : *tokens)
48  {
49  output.emplace_back(detail::RoutingPacketEntry(next_sequence_id_++, token));
50  }
51 
52  TLOG(12) << "NoOpPolicy::GetCurrentTable return";
53  return output;
54 }
55 
56 } // namespace artdaq
57 
58 DEFINE_ARTDAQ_ROUTING_POLICY(artdaq::NoOpPolicy)
A row of the Routing Table.
A RoutingManagerPolicy which simply assigns Sequence IDs to tokens in the order they were received...
Definition: NoOp_policy.cc:12
NoOpPolicy(fhicl::ParameterSet const &ps)
NoOpPolicy Constructor.
Definition: NoOp_policy.cc:21
Fragment::sequence_id_t next_sequence_id_
The next sequence ID to be assigned.
std::unique_ptr< std::deque< int > > getTokensSnapshot()
Gets the current token list, used for building Routing Tables.
The interface through which RoutingManagerCore obtains Routing Tables using received Routing Tokens...
std::vector< RoutingPacketEntry > RoutingPacket
A RoutingPacket is simply a vector of RoutingPacketEntry objects. It is not suitable for network tran...
detail::RoutingPacket GetCurrentTable() override
Using the tokens received so far, create a Routing Table.
Definition: NoOp_policy.cc:42
~NoOpPolicy() override=default
Default virtual Destructor.