33 #ifndef EMANEMODELSTDMAQUEUE_HEADER_ 34 #define EMANEMODELSTDMAQUEUE_HEADER_ 65 std::pair<std::unique_ptr<DownstreamPacket>,
bool>
70 std::list<std::unique_ptr<DownstreamPacket>>>
71 dequeue(
size_t requestedBytes,
NEMId destination,
bool bDrop);
74 std::tuple<size_t,size_t>
getStatus()
const;
83 using PacketQueue = std::map<std::uint64_t,
84 std::pair<DownstreamPacket *,MetaInfo *>>;
86 std::map<NEMId,PacketQueue> destQueue_;
87 std::uint16_t u16QueueDepth_;
89 std::uint64_t u64Counter_;
94 std::pair<MessageComponent,size_t> fragmentPacket(
DownstreamPacket * pPacket,
96 std::uint64_t u64Sequence,
103 #endif // EMANEMODELSTDMAQUEUE_HEADER_ void initialize(std::uint16_t u16QueueDepth, bool bFragment, bool bAggregate, bool bIsControl)
std::pair< std::unique_ptr< DownstreamPacket >, bool > enqueue(DownstreamPacket &&pkt)
struct EtherAddrBytes bytes
std::tuple< size_t, size_t > getStatus() const
Specialized packet the allows downstream processing to add layer specific headers as the packet trave...
std::list< MessageComponent > MessageComponents
Downstream packet queue with both FIFO and By-Destination FIFO dequeue mechanisms.
std::tuple< MessageComponents, size_t, std::list< std::unique_ptr< DownstreamPacket > > > dequeue(size_t requestedBytes, NEMId destination, bool bDrop)