IT++
4.3.1
Toggle main menu visibility
itpp
protocol
front_drop_queue.cpp
Go to the documentation of this file.
1
28
29
#include <
itpp/protocol/front_drop_queue.h
>
30
31
32
namespace
itpp
33
{
34
35
void
Front_Drop_Queue::push
(
Packet
*packet)
36
{
37
if
(debug) {
38
std::cout <<
"Front_Drop_Queue::push_packet"
39
// << " byte_size=" << packet->bit_size()/8
40
<<
" ptr="
<< packet
41
<<
" time="
<<
Event_Queue::now
() << std::endl;
42
}
43
44
Packet
*hol_packet;
45
while
((!std::queue<Packet*>::empty()) &&
46
((8*bytes_in_queue + packet->
bit_size
()) > 8*max_bytes_in_queue)) {
47
hol_packet = std::queue<Packet*>::front();
48
Front_Drop_Queue::pop
();
49
delete
hol_packet;
50
51
// TTCPPacket *tcp_packet = (TTCPPacket *) hol_packet;
52
// delete tcp_packet;
53
54
if
(debug) {
55
std::cout <<
"Link_With_Input_Q::received_packet, "
56
<<
"Packet Dropped, buffer overflow."
57
<< std::endl;
58
}
59
}
60
61
bytes_in_queue += packet->
bit_size
() / 8;
62
std::queue<Packet*>::push(packet);
63
64
}
65
66
void
Front_Drop_Queue::pop
()
67
{
68
Packet
*hol_packet;
69
hol_packet = std::queue<Packet*>::front();
70
bytes_in_queue -= (hol_packet->
bit_size
() / 8);
71
if
(debug) {
72
std::cout <<
"Front_Drop_Queue::pop_packet"
73
<<
" ptr="
<< hol_packet
74
<<
" time="
<<
Event_Queue::now
() << std::endl;
75
}
76
std::queue<Packet*>::pop();
77
78
}
79
80
}
// namespace itpp
itpp::Event_Queue::now
static Ttype now()
Return current time.
Definition
events.h:139
itpp::Front_Drop_Queue::pop
void pop()
ADD DOCUMENTATION HERE.
Definition
front_drop_queue.cpp:66
itpp::Front_Drop_Queue::push
void push(Packet *packet)
ADD DOCUMENTATION HERE.
Definition
front_drop_queue.cpp:35
itpp::Packet
Definition
packet.h:56
itpp::Packet::bit_size
int bit_size()
get size of packet in bits
Definition
packet.h:67
front_drop_queue.h
Definitions of a Front Drop Queue class.
itpp
itpp namespace
Definition
itmex.h:37
Generated by
1.17.0