1 #ifndef artdaq_DAQrate_detail_RoutingPacket_hh
2 #define artdaq_DAQrate_detail_RoutingPacket_hh
4 #include "artdaq-core/Data/Fragment.hh"
5 #define MAX_ROUTING_TABLE_SIZE 65000
9 struct RoutingPacketEntry;
48 Fragment::sequence_id_t
sequence_id{Fragment::InvalidSequenceID};
55 #define ROUTING_MAGIC 0x1337beef
107 #define TOKEN_MAGIC 0xbeefcafe
121 #endif //artdaq_Application_Routing_RoutingPacket_hh
A row of the Routing Table.
Events should be routed by sequence ID (BR -> EB)
A RoutingAckPacket contains the rank of the table receiver, plus the first and last sequence IDs in t...
unsigned new_slots_free
The number of slots free in the token sender (usually 1)
RoutingManagerMode
Mode indicating whether the RoutingManager is routing events by Sequence ID or by Send Count...
The RoutingToken contains the magic bytes, the rank of the token sender, and the number of slots free...
Fragment::sequence_id_t first_sequence_id
The first sequence ID in the received RoutingPacket.
RoutingPacketEntry(Fragment::sequence_id_t seq, int rank)
Construct a RoutingPacketEntry with the given sequence ID and destination rank.
int destination_rank
The destination rank for this sequence ID.
Fragment::sequence_id_t last_sequence_id
The last sequence ID in the received RoutingPacket.
std::vector< RoutingPacketEntry > RoutingPacket
A RoutingPacket is simply a vector of RoutingPacketEntry objects. It is not suitable for network tran...
int rank
The rank from which the RoutingToken came.
int rank
The rank from which the RoutingAckPacket came.
Fragment::sequence_id_t sequence_id
The sequence ID of the RoutingPacketEntry.
Events should be routed by send count (EB -> Agg)
unsigned run_number
The Run with which this token should be associated.
RoutingPacketEntry()
Default Constructor.
uint32_t header
The magic bytes that help validate the RoutingToken.