Class for representing queue sizes. More...
#include "queue-size.h"
Public Member Functions | |
QueueSize () | |
QueueSize (QueueSizeUnit unit, uint32_t value) | |
Integer constructor. | |
QueueSize (std::string size) | |
String constructor. | |
QueueSizeUnit | GetUnit () const |
Get the underlying unit. | |
uint32_t | GetValue () const |
Get the underlying value. | |
bool | operator!= (const QueueSize &rhs) const |
bool | operator< (const QueueSize &rhs) const |
bool | operator<= (const QueueSize &rhs) const |
bool | operator== (const QueueSize &rhs) const |
bool | operator> (const QueueSize &rhs) const |
bool | operator>= (const QueueSize &rhs) const |
Static Private Member Functions | |
static bool | DoParse (const std::string s, QueueSizeUnit *unit, uint32_t *value) |
Parse a string representing a QueueSize. | |
Private Attributes | |
QueueSizeUnit | m_unit |
unit | |
uint32_t | m_value |
queue size [bytes or packets] | |
Friends | |
std::istream & | operator>> (std::istream &is, QueueSize &size) |
Stream extraction operator. | |
Class for representing queue sizes.
Allows for natural and familiar use of queue sizes. Allows construction from strings, natural sum e.g.:
This class also supports the regular comparison operators <
, >
, <=
, >=
, ==
, and !=
Queue size specifiers consist of
Whitespace is allowed but not required between the numeric value and multiplier or unit.
Supported multiplier prefixes:
Prefix | Value |
---|---|
"k", "K" | 1000 |
"Ki" | 1024 |
"M" | 1000000 |
"Mi" | 1024 Ki |
Supported unit strings:
Symbol | Meaning |
---|---|
"B" | 8-bit bytes |
"p" | packets |
Examples:
Definition at line 84 of file queue-size.h.
ns3::QueueSize::QueueSize | ( | ) |
Definition at line 102 of file queue-size.cc.
References NS_LOG_FUNCTION.
ns3::QueueSize::QueueSize | ( | QueueSizeUnit | unit, |
uint32_t | value ) |
Integer constructor.
Construct a queue size from a mode and a value.
unit | whether the value is expressed in terms of packets or bytes |
value | the value |
Definition at line 109 of file queue-size.cc.
References NS_LOG_FUNCTION.
ns3::QueueSize::QueueSize | ( | std::string | size | ) |
String constructor.
Construct a queue size from a string. Many different unit strings are supported Supported unit strings: B, p
kB, KB, KiB, kp, Kp, Kip
MB, MiB, Mp, Mip
Examples: "56kB" = 56,000 bytes "128 kB" = 128,000 bytes "8KiB" = 8,192 bytes "1000p" = 1,000 packets
size | string representing the size |
Definition at line 178 of file queue-size.cc.
References DoParse(), m_unit, m_value, NS_ABORT_MSG_IF, and NS_LOG_FUNCTION.
|
staticprivate |
Parse a string representing a QueueSize.
Allowed unit representations include all combinations of
[in] | s | The string representation, including unit |
[in,out] | unit | The location to put the unit. |
[in,out] | value | The location to put the value, in bytes or packets. |
Definition at line 22 of file queue-size.cc.
References ns3::BYTES, NS_LOG_FUNCTION, and ns3::PACKETS.
Referenced by QueueSize().
QueueSizeUnit ns3::QueueSize::GetUnit | ( | ) | const |
Get the underlying unit.
Definition at line 165 of file queue-size.cc.
References m_unit, and NS_LOG_FUNCTION.
Referenced by ns3::QueueBase::GetCurrentSize(), ns3::RedQueueDisc::InitializeParams(), ns3::RedQueueDisc::ModifyP(), operator!=(), ns3::operator+(), ns3::operator+(), ns3::operator-(), ns3::operator-(), operator<(), ns3::operator<<(), operator<=(), operator==(), operator>(), operator>=(), ns3::QueueDisc::SetMaxSize(), and ns3::QueueBase::WouldOverflow().
uint32_t ns3::QueueSize::GetValue | ( | ) | const |
Get the underlying value.
Definition at line 172 of file queue-size.cc.
References m_value, and NS_LOG_FUNCTION.
Referenced by ns3::PieQueueDisc::DoEnqueue(), ns3::operator+(), ns3::operator+(), ns3::operator-(), ns3::operator-(), ns3::operator<<(), ns3::QueueBase::SetMaxSize(), ns3::QueueDisc::SetMaxSize(), and ns3::QueueBase::WouldOverflow().
bool ns3::QueueSize::operator!= | ( | const QueueSize & | rhs | ) | const |
rhs | the queue size to compare to this queue size |
Definition at line 157 of file queue-size.cc.
References GetUnit(), m_unit, m_value, and NS_ABORT_MSG_IF.
bool ns3::QueueSize::operator< | ( | const QueueSize & | rhs | ) | const |
rhs | the queue size to compare to this queue size |
Definition at line 116 of file queue-size.cc.
References GetUnit(), m_unit, m_value, and NS_ABORT_MSG_IF.
bool ns3::QueueSize::operator<= | ( | const QueueSize & | rhs | ) | const |
rhs | the queue size to compare to this queue size |
Definition at line 124 of file queue-size.cc.
References GetUnit(), m_unit, m_value, and NS_ABORT_MSG_IF.
bool ns3::QueueSize::operator== | ( | const QueueSize & | rhs | ) | const |
rhs | the queue size to compare to this queue size |
Definition at line 149 of file queue-size.cc.
References GetUnit(), m_unit, m_value, and NS_ABORT_MSG_IF.
bool ns3::QueueSize::operator> | ( | const QueueSize & | rhs | ) | const |
rhs | the queue size to compare to this queue size |
Definition at line 133 of file queue-size.cc.
References GetUnit(), m_unit, m_value, and NS_ABORT_MSG_IF.
bool ns3::QueueSize::operator>= | ( | const QueueSize & | rhs | ) | const |
rhs | the queue size to compare to this queue size |
Definition at line 141 of file queue-size.cc.
References GetUnit(), m_unit, m_value, and NS_ABORT_MSG_IF.
|
friend |
Stream extraction operator.
is | the stream |
size | the queue size |
Definition at line 195 of file queue-size.cc.
|
private |
unit
Definition at line 188 of file queue-size.h.
Referenced by QueueSize(), GetUnit(), operator!=(), operator<(), operator<=(), operator==(), operator>(), and operator>=().
|
private |
queue size [bytes or packets]
Definition at line 189 of file queue-size.h.
Referenced by QueueSize(), GetValue(), operator!=(), operator<(), operator<=(), operator==(), operator>(), and operator>=().