A Discrete-Event Network Simulator
API
ns3::QueueSize Class Reference

Class for representing queue sizes. More...

#include "queue-size.h"

Public Member Functions

 QueueSize ()
 
 QueueSize (QueueSizeUnit unit, uint32_t value)
 Integer constructor. More...
 
 QueueSize (std::string size)
 String constructor. More...
 
QueueSizeUnit GetUnit () const
 Get the underlying unit. More...
 
uint32_t GetValue () const
 Get the underlying value. More...
 
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. More...
 

Private Attributes

QueueSizeUnit m_unit
 unit More...
 
uint32_t m_value
 queue size [bytes or packets] More...
 

Friends

std::istream & operator>> (std::istream &is, QueueSize &size)
 Stream extraction operator. More...
 

Detailed Description

Class for representing queue sizes.

Allows for natural and familiar use of queue sizes. Allows construction from strings, natural sum e.g.:

QueueSize x("7kB");
Ptr<Packet> p = Create<Packet> (1000);
QueueSize y = x + p; // 8kB

This class also supports the regular comparison operators <, >, <=, >=, ==, and !=

Queue size specifiers consist of

  • A numeric value,
  • An optional multiplier prefix and
  • A unit.

Whitespace is allowed but not required between the numeric value and multipler 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:

  • "56kB" = 56,000 bytes
  • "128 kB" = 128,000 bytes
  • "8KiB" = 8,192 bytes
  • "1000p" = 1,000 packets
See also
attribute_QueueSize

Definition at line 94 of file queue-size.h.

Constructor & Destructor Documentation

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.

Parameters
unitwhether the value is expressed in terms of packets or bytes
valuethe 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

Parameters
sizestring representing the size

Definition at line 181 of file queue-size.cc.

References DoParse(), m_unit, m_value, NS_ABORT_MSG_IF, NS_LOG_FUNCTION, and NS_UNUSED.

+ Here is the call graph for this function:

Member Function Documentation

bool ns3::QueueSize::DoParse ( const std::string  s,
QueueSizeUnit unit,
uint32_t *  value 
)
staticprivate

Parse a string representing a QueueSize.

Allowed unit representations include all combinations of

  • An SI prefix: k, K, M
  • Bytes (8 bits) or packets
Parameters
[in]sThe string representation, including unit
[in,out]unitThe location to put the unit.
[in,out]valueThe location to put the value, in bytes or packets.
Returns
true if parsing was successful.

Definition at line 33 of file queue-size.cc.

References ns3::BYTES, NS_LOG_FUNCTION, and ns3::PACKETS.

Referenced by ns3::operator>>(), and QueueSize().

+ Here is the caller graph for this function:

bool ns3::QueueSize::operator!= ( const QueueSize rhs) const
Returns
true if this size is not equal to rhs
Parameters
rhsthe queue size to compare to this queue size

Definition at line 162 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
Returns
true if this size is less than rhs
Parameters
rhsthe 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
Returns
true if this size is less than or equal to rhs
Parameters
rhsthe queue size to compare to this queue size

Definition at line 134 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
Returns
true if this size is equal to rhs
Parameters
rhsthe queue size to compare to this queue size

Definition at line 155 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
Returns
true if this size is greater than rhs
Parameters
rhsthe 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.

+ Here is the call graph for this function:

bool ns3::QueueSize::operator>= ( const QueueSize rhs) const
Returns
true if this size is greather than or equal to rhs
Parameters
rhsthe queue size to compare to this queue size

Definition at line 148 of file queue-size.cc.

References GetUnit(), m_unit, m_value, and NS_ABORT_MSG_IF.

+ Here is the call graph for this function:

Friends And Related Function Documentation

std::istream& operator>> ( std::istream &  is,
QueueSize size 
)
friend

Stream extraction operator.

Parameters
isthe stream
sizethe queue size
Returns
a reference to the stream

Definition at line 196 of file queue-size.cc.

Member Data Documentation

QueueSizeUnit ns3::QueueSize::m_unit
private

unit

Definition at line 199 of file queue-size.h.

Referenced by GetUnit(), operator!=(), operator<(), operator<=(), operator==(), operator>(), operator>=(), and QueueSize().

uint32_t ns3::QueueSize::m_value
private

queue size [bytes or packets]

Definition at line 200 of file queue-size.h.

Referenced by GetValue(), operator!=(), operator<(), operator<=(), operator==(), operator>(), operator>=(), and QueueSize().


The documentation for this class was generated from the following files: