Class for representing queue sizes. More...
#include "queue-size.h"
Collaboration diagram for ns3::QueueSize: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 95 of file queue-size.h.
| ns3::QueueSize::QueueSize | ( | ) |
Definition at line 113 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 120 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 189 of file queue-size.cc.
References DoParse(), m_unit, m_value, NS_ABORT_MSG_IF, and NS_LOG_FUNCTION.
Here is the call graph for this 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 33 of file queue-size.cc.
References ns3::BYTES, NS_LOG_FUNCTION, and ns3::PACKETS.
Referenced by QueueSize().
Here is the caller graph for this function:| QueueSizeUnit ns3::QueueSize::GetUnit | ( | ) | const |
Get the underlying unit.
Definition at line 176 of file queue-size.cc.
References m_unit, and NS_LOG_FUNCTION.
Referenced by PieQueueDiscTestCase::CheckMaxAccuProb(), ns3::QueueBase::GetCurrentSize(), ns3::RedQueueDisc::InitializeParams(), ns3::RedQueueDisc::ModifyP(), operator!=(), ns3::operator+(), ns3::operator-(), operator<(), ns3::operator<<(), operator<=(), operator==(), operator>(), operator>=(), ns3::QueueDisc::SetMaxSize(), and ns3::QueueBase::WouldOverflow().
Here is the caller graph for this function:| uint32_t ns3::QueueSize::GetValue | ( | ) | const |
Get the underlying value.
Definition at line 183 of file queue-size.cc.
References m_value, and NS_LOG_FUNCTION.
Referenced by PieQueueDiscTestCase::CheckMaxAccuProb(), ns3::PieQueueDisc::DoEnqueue(), ns3::operator+(), ns3::operator-(), ns3::operator<<(), ns3::QueueBase::SetMaxSize(), ns3::QueueDisc::SetMaxSize(), and ns3::QueueBase::WouldOverflow().
Here is the caller graph for this function:| bool ns3::QueueSize::operator!= | ( | const QueueSize & | rhs | ) | const |
| rhs | the queue size to compare to this queue size |
Definition at line 168 of file queue-size.cc.
References GetUnit(), m_unit, m_value, and NS_ABORT_MSG_IF.
Here is the call graph for this function:| bool ns3::QueueSize::operator< | ( | const QueueSize & | rhs | ) | const |
| rhs | the queue size to compare to this queue size |
Definition at line 127 of file queue-size.cc.
References GetUnit(), m_unit, m_value, and NS_ABORT_MSG_IF.
Here is the call graph for this function:| bool ns3::QueueSize::operator<= | ( | const QueueSize & | rhs | ) | const |
| rhs | the queue size to compare to this queue size |
Definition at line 135 of file queue-size.cc.
References GetUnit(), m_unit, m_value, and NS_ABORT_MSG_IF.
Here is the call graph for this function:| bool ns3::QueueSize::operator== | ( | const QueueSize & | rhs | ) | const |
| rhs | the queue size to compare to this queue size |
Definition at line 160 of file queue-size.cc.
References GetUnit(), m_unit, m_value, and NS_ABORT_MSG_IF.
Here is the call graph for this function:| bool ns3::QueueSize::operator> | ( | const QueueSize & | rhs | ) | const |
| rhs | the queue size to compare to this queue size |
Definition at line 144 of file queue-size.cc.
References GetUnit(), m_unit, m_value, and NS_ABORT_MSG_IF.
Here is the call graph for this function:| bool ns3::QueueSize::operator>= | ( | const QueueSize & | rhs | ) | const |
| rhs | the queue size to compare to this queue size |
Definition at line 152 of file queue-size.cc.
References GetUnit(), m_unit, m_value, and NS_ABORT_MSG_IF.
Here is the call graph for this function:
|
friend |
Stream extraction operator.
| is | the stream |
| size | the queue size |
Definition at line 206 of file queue-size.cc.
|
private |
unit
Definition at line 199 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 200 of file queue-size.h.
Referenced by QueueSize(), GetValue(), operator!=(), operator<(), operator<=(), operator==(), operator>(), and operator>=().