Management of lengths in real world units. More...
Collaboration diagram for Length:Modules | |
| Length test suite | |
Files | |
| file | length-example.cc |
| Demonstrates usage of the ns3::Length class. | |
| file | length.cc |
| ns3::Length implementation | |
| file | length.h |
| Declaration of ns3::Length class. | |
Namespaces | |
| namespace | anonymous_namespace{length.cc} |
| Unnamed namespace. | |
Classes | |
| class | ns3::Length |
| Represents a length in meters. More... | |
Functions | |
| void | ArithmeticOperators () |
| Demonstrates the use of ns3::Length arithmetic operators. More... | |
| void | Constructors () |
| Demonstrates the use of ns3::Length constructors. More... | |
| void | Conversions () |
| Demonstrates the use of ns3::Length conversions. More... | |
| int64_t | ns3::Div (const Length &numerator, const Length &denominator, Length *remainder=nullptr) |
Calculate how many times numerator can be split into denominator sized pieces. More... | |
| void | DivAndMod () |
| Demonstrates the use of ns3::Length multiplications and divisions. More... | |
| void | EqualityOperators () |
| Demonstrates the use of ns3::Length equality operators. More... | |
| std::optional< Length::Unit > | ns3::FromString (std::string unitString) |
| Find the equivalent Length::Unit for a unit string. More... | |
| Length | ns3::Mod (const Length &numerator, const Length &denominator) |
| Calculate the amount remaining after dividing two lengths. More... | |
| bool | ns3::operator!= (const Length &left, const Length &right) |
| Compare two length objects for inequality. More... | |
| Length | ns3::operator* (const Length &l, double scalar) |
| Multiply a length value by a scalar. More... | |
| Length | ns3::operator* (double scalar, const Length &l) |
| Multiply a length value by a scalar. More... | |
| Length | ns3::operator+ (const Length &left, const Length &right) |
| Add two length values together. More... | |
| Length | ns3::operator- (const Length &left, const Length &right) |
| Subtract two length values. More... | |
| Length | ns3::operator/ (const Length &left, double scalar) |
| Divide a length value by a scalar. More... | |
| double | ns3::operator/ (const Length &numerator, const Length &denominator) |
| Divide a length value by another length value. More... | |
| bool | ns3::operator< (const Length &left, const Length &right) |
Check if left has a value less than right. More... | |
| std::ostream & | ns3::operator<< (std::ostream &stream, const Length &l) |
| Write a length value to an output stream. More... | |
| std::ostream & | ns3::operator<< (std::ostream &stream, const Length::Quantity &q) |
| Write a Quantity to an output stream. More... | |
| std::ostream & | ns3::operator<< (std::ostream &stream, Length::Unit unit) |
| Write a Length::Unit to an output stream. More... | |
| bool | ns3::operator<= (const Length &left, const Length &right) |
Check if left has a value less than or equal to right. More... | |
| bool | ns3::operator== (const Length &left, const Length &right) |
| Compare two length objects for equality. More... | |
| bool | ns3::operator> (const Length &left, const Length &right) |
Check if left has a value greater than right. More... | |
| bool | ns3::operator>= (const Length &left, const Length &right) |
Check if left has a value greater than or equal to right. More... | |
| std::istream & | ns3::operator>> (std::istream &stream, Length &l) |
| Read a length value from an input stream. More... | |
| std::string | ns3::ToName (Length::Unit unit, bool plural=false) |
| Return the name of the supplied unit. More... | |
| std::string | ns3::ToSymbol (Length::Unit unit) |
| Return the symbol of the supplied unit. More... | |
| Length | ns3::NanoMeters (double value) |
| Construct a length from a value in the indicated unit. More... | |
| Length | ns3::MicroMeters (double value) |
| Construct a length from a value in the indicated unit. More... | |
| Length | ns3::MilliMeters (double value) |
| Construct a length from a value in the indicated unit. More... | |
| Length | ns3::CentiMeters (double value) |
| Construct a length from a value in the indicated unit. More... | |
| Length | ns3::Meters (double value) |
| Construct a length from a value in the indicated unit. More... | |
| Length | ns3::KiloMeters (double value) |
| Construct a length from a value in the indicated unit. More... | |
| Length | ns3::NauticalMiles (double value) |
| Construct a length from a value in the indicated unit. More... | |
| Length | ns3::Inches (double value) |
| Construct a length from a value in the indicated unit. More... | |
| Length | ns3::Feet (double value) |
| Construct a length from a value in the indicated unit. More... | |
| Length | ns3::Yards (double value) |
| Construct a length from a value in the indicated unit. More... | |
| Length | ns3::Miles (double value) |
| Construct a length from a value in the indicated unit. More... | |
Management of lengths in real world units.
| void ArithmeticOperators | ( | ) |
Demonstrates the use of ns3::Length arithmetic operators.
Definition at line 83 of file length-example.cc.
References ns3::Meters().
Here is the call graph for this function:Construct a length from a value in the indicated unit.
| value | The numerical value. |
Definition at line 799 of file length.cc.
References second::value.
Referenced by LengthTestCase::TestBuilderFreeFunctions().
Here is the caller graph for this function:| void Constructors | ( | ) |
Demonstrates the use of ns3::Length constructors.
Definition at line 40 of file length-example.cc.
| void Conversions | ( | ) |
Demonstrates the use of ns3::Length conversions.
Definition at line 63 of file length-example.cc.
References ns3::Length::As().
Here is the call graph for this function:| int64_t ns3::Div | ( | const Length & | numerator, |
| const Length & | denominator, | ||
| Length * | remainder = nullptr |
||
| ) |
Calculate how many times numerator can be split into denominator sized pieces.
If the result of numerator / denominator is not a whole number, the result is rounded toward zero to the nearest whole number. The amount remaining after the division can be retrieved by passing a pointer to a Length in remainder. The remainder will be less than denominator and have the same sign as numerator.
NS_FATAL_ERROR is called if denominator is 0.
| numerator | The value to split |
| denominator | The length of each split |
| remainder | Location to store the remainder |
numerator can be split into denominator sized pieces, rounded down to the nearest whole number Definition at line 481 of file length.cc.
References ns3::Length::GetDouble(), NS_FATAL_ERROR, and second::value.
Referenced by DivAndMod(), TimeSimpleTestCase::DoTimeOperations(), LengthTestCase::TestDivReturnsCorrectRemainder(), LengthTestCase::TestDivReturnsCorrectResult(), and LengthTestCase::TestDivReturnsZeroRemainder().
Here is the call graph for this function:
Here is the caller graph for this function:| void DivAndMod | ( | ) |
Demonstrates the use of ns3::Length multiplications and divisions.
Definition at line 149 of file length-example.cc.
References ns3::Length::As(), ns3::Div(), ns3::Feet(), and ns3::Mod().
Here is the call graph for this function:| void EqualityOperators | ( | ) |
Demonstrates the use of ns3::Length equality operators.
Definition at line 111 of file length-example.cc.
References ns3::Meters().
Here is the call graph for this function:Construct a length from a value in the indicated unit.
| value | The numerical value. |
Definition at line 829 of file length.cc.
References second::value.
Referenced by DivAndMod(), and LengthTestCase::TestBuilderFreeFunctions().
Here is the caller graph for this function:| std::optional< Length::Unit > ns3::FromString | ( | std::string | unitString | ) |
Find the equivalent Length::Unit for a unit string.
The string value can be a symbol or name (plural or singular).
The string comparison ignores case so strings like "NanoMeter", "centiMeter", "METER" will all match the correct unit.
Leading and trailing whitespace are trimmed from the string before searching for a match.
| unitString | String containing the symbol or name of a length unit |
Definition at line 576 of file length.cc.
Referenced by ns3::Length::Length(), and ns3::Length::TryParse().
Here is the caller graph for this function:Construct a length from a value in the indicated unit.
| value | The numerical value. |
Definition at line 823 of file length.cc.
References second::value.
Referenced by LengthTestCase::TestBuilderFreeFunctions().
Here is the caller graph for this function:Construct a length from a value in the indicated unit.
| value | The numerical value. |
Definition at line 811 of file length.cc.
References second::value.
Referenced by LengthValueTestCase::TestAttributeConstructor(), LengthValueTestCase::TestAttributeDeserialization(), LengthValueTestCase::TestAttributeSerialization(), and LengthTestCase::TestBuilderFreeFunctions().
Here is the caller graph for this function:Construct a length from a value in the indicated unit.
| value | The numerical value. |
Definition at line 805 of file length.cc.
References second::value.
Referenced by ArithmeticOperators(), EqualityOperators(), and LengthTestCase::TestBuilderFreeFunctions().
Here is the caller graph for this function:Construct a length from a value in the indicated unit.
| value | The numerical value. |
Definition at line 787 of file length.cc.
References second::value.
Referenced by LengthTestCase::TestBuilderFreeFunctions().
Here is the caller graph for this function:Construct a length from a value in the indicated unit.
| value | The numerical value. |
Definition at line 841 of file length.cc.
References second::value.
Referenced by LengthTestCase::TestBuilderFreeFunctions().
Here is the caller graph for this function:Construct a length from a value in the indicated unit.
| value | The numerical value. |
Definition at line 793 of file length.cc.
References second::value.
Referenced by LengthTestCase::TestBuilderFreeFunctions().
Here is the caller graph for this function:Calculate the amount remaining after dividing two lengths.
The returned value will be less than denominator and have the same sign as numerator.
NS_FATAL_ERROR is called if denominator is 0.
| numerator | The value to split |
| denominator | The length of each split |
numerator into denominator sized pieces. Definition at line 500 of file length.cc.
References ns3::Length::GetDouble(), and NS_FATAL_ERROR.
Referenced by DivAndMod(), LengthTestCase::TestModReturnsNonZero(), and LengthTestCase::TestModReturnsZero().
Here is the call graph for this function:
Here is the caller graph for this function:Construct a length from a value in the indicated unit.
| value | The numerical value. |
Definition at line 781 of file length.cc.
References second::value.
Referenced by LengthTestCase::TestBuilderFreeFunctions().
Here is the caller graph for this function:Construct a length from a value in the indicated unit.
| value | The numerical value. |
Definition at line 817 of file length.cc.
References second::value.
Referenced by LengthTestCase::TestBuilderFreeFunctions().
Here is the caller graph for this function:| bool ns3::operator!= | ( | const Length & | left, |
| const Length & | right | ||
| ) |
Compare two length objects for inequality.
Equivalent to:
| left | Left length object |
| right | Right length object |
left and right do not have the same value Definition at line 402 of file length.cc.
References ns3::Length::GetDouble().
Here is the call graph for this function:Multiply a length value by a scalar.
Multiplies the value l by scalar and returns a new Length object containing the result.
| l | The Length object |
| scalar | Multiplication factor |
l * scalar. Definition at line 446 of file length.cc.
References ns3::Length::GetDouble(), and second::value.
Here is the call graph for this function:Add two length values together.
Adds the values of left to right and returns a new Length object containing the result.
left + right. Definition at line 432 of file length.cc.
References ns3::Length::GetDouble(), and second::value.
Here is the call graph for this function:Subtract two length values.
Subtracts the value of right from left and returns a new Length object containing the result.
left - right. Definition at line 439 of file length.cc.
References ns3::Length::GetDouble(), and second::value.
Here is the call graph for this function:Divide a length value by a scalar.
Divides the value left by scalar and returns a new Length object containing the result.
scalar must contain a non zero value. NS_FATAL_ERROR is called if scalar is zero
| left | Length value |
| scalar | Multiplication factor |
left / scalar. Definition at line 459 of file length.cc.
References NS_FATAL_ERROR.
Divide a length value by another length value.
Divides the value numerator by the value denominator and returns a scalar value containing the result.
The return value will be NaN if denominator is 0.
| numerator | The top value of the division |
| denominator | The bottom value of the division |
numerator / denominator or NaN if denominator is 0. Definition at line 470 of file length.cc.
References ns3::Length::GetDouble().
Here is the call graph for this function:Check if left has a value less than right.
Equivalent to:
| left | Left length object |
| right | Right length object |
left is less than right Definition at line 407 of file length.cc.
References ns3::Length::GetDouble().
Here is the call graph for this function:| std::ostream & ns3::operator<< | ( | std::ostream & | stream, |
| const Length & | l | ||
| ) |
Write a length value to an output stream.
The output of the length is in meters.
Equivalent to:
| stream | Output stream |
| l | Length value to write to the stream |
Definition at line 657 of file length.cc.
References ns3::Length::As().
Here is the call graph for this function:| std::ostream & ns3::operator<< | ( | std::ostream & | stream, |
| const Length::Quantity & | q | ||
| ) |
Write a Quantity to an output stream.
The data written to the output stream will have the format <value> <symbol>
Equivalent to:
| stream | Output stream |
| q | Quantity to write to the output stream |
Definition at line 665 of file length.cc.
References ns3::ToSymbol(), ns3::Length::Quantity::Unit(), and ns3::Length::Quantity::Value().
Here is the call graph for this function:| std::ostream & ns3::operator<< | ( | std::ostream & | stream, |
| Length::Unit | unit | ||
| ) |
Write a Length::Unit to an output stream.
Writes the name of unit to the output stream
Equivalent to:
| stream | Output stream |
| unit | Length unit to output |
Definition at line 673 of file length.cc.
References ns3::ToName().
Here is the call graph for this function:Check if left has a value less than or equal to right.
Equivalent to:
| left | Left length object |
| right | Right length object |
left is less than or equal to right Definition at line 413 of file length.cc.
References ns3::Length::GetDouble().
Here is the call graph for this function:Compare two length objects for equality.
Equivalent to:
| left | Left length object |
| right | Right length object |
left and right have the same value Definition at line 396 of file length.cc.
References ns3::Length::GetDouble().
Here is the call graph for this function:Check if left has a value greater than right.
Equivalent to:
| left | Left length object |
| right | Right length object |
left is greater than right Definition at line 420 of file length.cc.
References ns3::Length::GetDouble().
Here is the call graph for this function:Check if left has a value greater than or equal to right.
Equivalent to:
| left | Left length object |
| right | Right length object |
left is greater than or equal to right Definition at line 426 of file length.cc.
References ns3::Length::GetDouble().
Here is the call graph for this function:| std::istream & ns3::operator>> | ( | std::istream & | stream, |
| Length & | l | ||
| ) |
Read a length value from an input stream.
The expected format of the input is <number> <unit> or <number><unit> This function calls NS_ABORT if the input stream does not contain a valid length string
| stream | Input stream |
| l | Object where the deserialized value will be stored |
Definition at line 735 of file length.cc.
References NS_LOG_LOGIC, ns3::ParseLengthString(), ns3::Length::swap(), and second::value.
Here is the call graph for this function:| std::string ns3::ToName | ( | Length::Unit | unit, |
| bool | plural = false |
||
| ) |
Return the name of the supplied unit.
The value returned by this function is the common name of unit. The output is always lowercase.
If plural is true, then the plural form of the common name is returned instead.
| unit | The unit to name |
| plural | Boolean indicating if the returned string should contain the plural form of the name |
unit Definition at line 541 of file length.cc.
References NS_FATAL_ERROR.
Referenced by ns3::operator<<().
Here is the caller graph for this function:| std::string ns3::ToSymbol | ( | Length::Unit | unit | ) |
Return the symbol of the supplied unit.
The symbol of the unit is the shortened form of the unit name and is usually two or three characters long
| unit | The unit to symbolize |
unit Definition at line 513 of file length.cc.
References NS_FATAL_ERROR.
Referenced by ns3::operator<<().
Here is the caller graph for this function:Construct a length from a value in the indicated unit.
| value | The numerical value. |
Definition at line 835 of file length.cc.
References second::value.
Referenced by LengthTestCase::TestBuilderFreeFunctions().
Here is the caller graph for this function: