35#define TRACED_VALUE_DEBUG(x) 
   58namespace TracedValueCallback
 
   71typedef void (*
Bool)(
bool oldValue, 
bool newValue);
 
   73typedef void (*
Uint8)(uint8_t oldValue, uint8_t newValue);
 
   74typedef void (*
Int16)(int16_t oldValue, int16_t newValue);
 
   75typedef void (*
Uint16)(uint16_t oldValue, uint16_t newValue);
 
   78typedef void (*
Int64)(int64_t oldValue, int64_t newValue);
 
   79typedef void (*
Uint64)(uint64_t oldValue, uint64_t newValue);
 
   80typedef void (*
Double)(
double oldValue, 
double newValue);
 
  157    template <
typename U>
 
  168    template <
typename U>
 
 
  319    return os << rhs.
Get();
 
 
  330template <
typename T, 
typename U>
 
  335    return lhs.
Get() == rhs.
Get();
 
 
  339template <
typename T, 
typename U>
 
  344    return lhs.
Get() == rhs;
 
 
  348template <
typename T, 
typename U>
 
  353    return lhs == rhs.
Get();
 
 
  357template <
typename T, 
typename U>
 
  362    return lhs.
Get() != rhs.
Get();
 
 
  366template <
typename T, 
typename U>
 
  371    return lhs.
Get() != rhs;
 
 
  375template <
typename T, 
typename U>
 
  380    return lhs != rhs.
Get();
 
 
  384template <
typename T, 
typename U>
 
  389    return lhs.
Get() <= rhs.
Get();
 
 
  393template <
typename T, 
typename U>
 
  398    return lhs.
Get() <= rhs;
 
 
  402template <
typename T, 
typename U>
 
  407    return lhs <= rhs.
Get();
 
 
  411template <
typename T, 
typename U>
 
  416    return lhs.
Get() >= rhs.
Get();
 
 
  420template <
typename T, 
typename U>
 
  425    return lhs.
Get() >= rhs;
 
 
  429template <
typename T, 
typename U>
 
  434    return lhs >= rhs.
Get();
 
 
  438template <
typename T, 
typename U>
 
  443    return lhs.
Get() < rhs.
Get();
 
 
  447template <
typename T, 
typename U>
 
  452    return lhs.
Get() < rhs;
 
 
  456template <
typename T, 
typename U>
 
  461    return lhs < rhs.
Get();
 
 
  465template <
typename T, 
typename U>
 
  470    return lhs.
Get() > rhs.
Get();
 
 
  474template <
typename T, 
typename U>
 
  479    return lhs.
Get() > rhs;
 
 
  483template <
typename T, 
typename U>
 
  488    return lhs > rhs.
Get();
 
 
  506template <
typename T, 
typename U>
 
  513    return TracedValue<
decltype(lhs.Get() + rhs.Get())>(lhs.Get() + rhs.Get());
 
 
  517template <
typename T, 
typename U>
 
  522    return TracedValue<
decltype(lhs.Get() + rhs)>(lhs.Get() + rhs);
 
 
  526template <
typename T, 
typename U>
 
  531    return TracedValue<
decltype(lhs + rhs.Get())>(lhs + rhs.Get());
 
 
  537template <
typename T, 
typename U>
 
  544    return TracedValue<
decltype(lhs.Get() - rhs.Get())>(lhs.Get() - rhs.Get());
 
 
  548template <
typename T, 
typename U>
 
  553    return TracedValue<
decltype(lhs.Get() - rhs)>(lhs.Get() - rhs);
 
 
  557template <
typename T, 
typename U>
 
  562    return TracedValue<
decltype(lhs - rhs.Get())>(lhs - rhs.Get());
 
 
  568template <
typename T, 
typename U>
 
  575    return TracedValue<
decltype(lhs.Get() * rhs.Get())>(lhs.Get() * rhs.Get());
 
 
  579template <
typename T, 
typename U>
 
  584    return TracedValue<
decltype(lhs.Get() * rhs)>(lhs.Get() * rhs);
 
 
  588template <
typename T, 
typename U>
 
  593    return TracedValue<
decltype(lhs + rhs.Get())>(lhs * rhs.Get());
 
 
  599template <
typename T, 
typename U>
 
  606    return TracedValue<
decltype(lhs.Get() / rhs.Get())>(lhs.Get() / rhs.Get());
 
 
  610template <
typename T, 
typename U>
 
  615    return TracedValue<
decltype(lhs.Get() / rhs)>(lhs.Get() / rhs);
 
 
  619template <
typename T, 
typename U>
 
  624    return TracedValue<
decltype(lhs / rhs.Get())>(lhs / rhs.Get());
 
 
  630template <
typename T, 
typename U>
 
  637    return TracedValue<
decltype(lhs.Get() % rhs.Get())>(lhs.Get() % rhs.Get());
 
 
  641template <
typename T, 
typename U>
 
  646    return TracedValue<
decltype(lhs.Get() % rhs)>(lhs.Get() % rhs);
 
 
  650template <
typename T, 
typename U>
 
  655    return TracedValue<
decltype(lhs % rhs.Get())>(lhs % rhs.Get());
 
 
  661template <
typename T, 
typename U>
 
  668    return TracedValue<
decltype(lhs.Get() ^ rhs.Get())>(lhs.Get() ^ rhs.Get());
 
 
  672template <
typename T, 
typename U>
 
  677    return TracedValue<
decltype(lhs.Get() ^ rhs)>(lhs.Get() ^ rhs);
 
 
  681template <
typename T, 
typename U>
 
  686    return TracedValue<
decltype(lhs ^ rhs.Get())>(lhs ^ rhs.Get());
 
 
  692template <
typename T, 
typename U>
 
  699    return TracedValue<
decltype(lhs.Get() | rhs.Get())>(lhs.Get() | rhs.Get());
 
 
  703template <
typename T, 
typename U>
 
  708    return TracedValue<
decltype(lhs.Get() | rhs)>(lhs.Get() | rhs);
 
 
  712template <
typename T, 
typename U>
 
  717    return TracedValue<
decltype(lhs | rhs.Get())>(lhs | rhs.Get());
 
 
  723template <
typename T, 
typename U>
 
  730    return TracedValue<
decltype(lhs.Get() & rhs.Get())>(lhs.Get() & rhs.Get());
 
 
  734template <
typename T, 
typename U>
 
  739    return TracedValue<
decltype(lhs.Get() & rhs)>(lhs.Get() & rhs);
 
 
  743template <
typename T, 
typename U>
 
  748    return TracedValue<
decltype(lhs & rhs.Get())>(lhs & rhs.Get());
 
 
  754template <
typename T, 
typename U>
 
  761    return TracedValue<
decltype(lhs.Get() << rhs.Get())>(lhs.Get() << rhs.Get());
 
 
  765template <
typename T, 
typename U>
 
  770    return TracedValue<
decltype(lhs.Get() << rhs)>(lhs.Get() << rhs);
 
 
  774template <
typename T, 
typename U>
 
  779    return TracedValue<
decltype(lhs << rhs.Get())>(lhs << rhs.Get());
 
 
  785template <
typename T, 
typename U>
 
  792    return TracedValue<
decltype(lhs.Get() >> rhs.Get())>(lhs.Get() >> rhs.Get());
 
 
  796template <
typename T, 
typename U>
 
  801    return TracedValue<
decltype(lhs.Get() >> rhs)>(lhs.Get() >> rhs);
 
 
  805template <
typename T, 
typename U>
 
  810    return TracedValue<
decltype(lhs >> rhs.Get())>(lhs >> rhs.Get());
 
 
  827template <
typename T, 
typename U>
 
  839template <
typename T, 
typename U>
 
  851template <
typename T, 
typename U>
 
  863template <
typename T, 
typename U>
 
  875template <
typename T, 
typename U>
 
  887template <
typename T, 
typename U>
 
  899template <
typename T, 
typename U>
 
  911template <
typename T, 
typename U>
 
  923template <
typename T, 
typename U>
 
  935template <
typename T, 
typename U>
 
ns3::BooleanValue attribute value declarations.
Base class for Callback class.
Forward calls to a chain of Callback.
void Disconnect(const CallbackBase &callback, std::string path)
Remove from the chain a Callback which was connected with a context.
void ConnectWithoutContext(const CallbackBase &callback)
Append a Callback to the chain (without a context).
void DisconnectWithoutContext(const CallbackBase &callback)
Remove from the chain a Callback which was connected without a context.
void Connect(const CallbackBase &callback, std::string path)
Append a Callback to the chain with a context.
Trace classes with value semantics.
TracedValue(const T &v)
Construct from an explicit variable.
TracedValue & operator++()
Pre/post- increment/decrement operator.
void DisconnectWithoutContext(const CallbackBase &cb)
Disconnect a Callback which was connected without context.
TracedCallback< T, T > m_cb
The connected Callback.
T m_v
The underlying value.
TracedValue & operator--()
Pre/post- increment/decrement operator.
void Connect(const CallbackBase &cb, std::string path)
Connect a Callback with a context string.
void Disconnect(const CallbackBase &cb, std::string path)
Disconnect a Callback which was connected with context.
TracedValue operator--(int)
Pre/post- increment/decrement operator.
TracedValue & operator=(const TracedValue &o)
Assignment.
TracedValue(const TracedValue &o)
Copy constructor.
void ConnectWithoutContext(const CallbackBase &cb)
Connect a Callback (without context.)
T Get() const
Get the underlying value.
TracedValue()
Default constructor.
TracedValue(const U &other)
Copy from a variable type compatible with this underlying type.
void Set(const T &v)
Set the value of the underlying variable.
TracedValue operator++(int)
Pre/post- increment/decrement operator.
TracedValue(const TracedValue< U > &other)
Copy from a TracedValue of a compatible type.
ns3::DoubleValue attribute value declarations and template implementations.
ns3::EnumValue attribute value declarations.
int64x64_t operator/(const int64x64_t &lhs, const int64x64_t &rhs)
Division operator.
bool operator>=(const int64x64_t &lhs, const int64x64_t &rhs)
Greater or equal operator.
bool operator<=(const int64x64_t &lhs, const int64x64_t &rhs)
Less or equal operator.
int64x64_t operator-(const int64x64_t &lhs, const int64x64_t &rhs)
Subtraction operator.
int64x64_t operator+(const int64x64_t &lhs, const int64x64_t &rhs)
Addition operator.
int64x64_t operator*(const int64x64_t &lhs, const int64x64_t &rhs)
Multiplication operator.
bool operator>(const Length &left, const Length &right)
Check if left has a value greater than right.
TracedValue< T > & operator/=(TracedValue< T > &lhs, const U &rhs)
Operator assignment for TracedValue.
TracedValue< T > & operator|=(TracedValue< T > &lhs, const U &rhs)
Operator assignment for TracedValue.
TracedValue< T > operator!(const TracedValue< T > &lhs)
Unary arithmetic operator for TracedValue.
TracedValue< T > & operator%=(TracedValue< T > &lhs, const U &rhs)
Operator assignment for TracedValue.
auto operator^(const TracedValue< T > &lhs, const TracedValue< U > &rhs) -> TracedValue< decltype(lhs.Get() ^ rhs.Get())>
Infix arithmetic operator for TracedValue.
auto operator|(const TracedValue< T > &lhs, const TracedValue< U > &rhs) -> TracedValue< decltype(lhs.Get()|rhs.Get())>
Infix arithmetic operator for TracedValue.
TracedValue< T > & operator^=(TracedValue< T > &lhs, const U &rhs)
Operator assignment for TracedValue.
TracedValue< T > & operator*=(TracedValue< T > &lhs, const U &rhs)
Operator assignment for TracedValue.
TracedValue< T > & operator<<=(TracedValue< T > &lhs, const U &rhs)
Operator assignment for TracedValue.
TracedValue< T > operator~(const TracedValue< T > &lhs)
Unary arithmetic operator for TracedValue.
TracedValue< T > & operator>>=(TracedValue< T > &lhs, const U &rhs)
Operator assignment for TracedValue.
TracedValue< T > & operator&=(TracedValue< T > &lhs, const U &rhs)
Operator assignment for TracedValue.
auto operator&(const TracedValue< T > &lhs, const TracedValue< U > &rhs) -> TracedValue< decltype(lhs.Get() &rhs.Get())>
Infix arithmetic operator for TracedValue.
ns3::IntegerValue attribute value declarations and template implementations.
void(* Uint16)(uint16_t oldValue, uint16_t newValue)
TracedValue Callback signature for POD.
void(* Bool)(bool oldValue, bool newValue)
TracedValue Callback signature for POD.
void(* Int8)(int8_t oldValue, int8_t newValue)
TracedValue Callback signature for POD.
void(* Void)()
TracedValue Callback signature for void.
void(* Int16)(int16_t oldValue, int16_t newValue)
TracedValue Callback signature for POD.
void(* Uint8)(uint8_t oldValue, uint8_t newValue)
TracedValue Callback signature for POD.
void(* Int64)(int64_t oldValue, int64_t newValue)
TracedValue Callback signature for POD.
void(* Uint32)(uint32_t oldValue, uint32_t newValue)
TracedValue Callback signature for POD.
void(* Uint64)(uint64_t oldValue, uint64_t newValue)
TracedValue Callback signature for POD.
void(* Int32)(int32_t oldValue, int32_t newValue)
TracedValue Callback signature for POD.
void(* Double)(double oldValue, double newValue)
TracedValue Callback signature for POD.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
bool operator!=(Callback< R, Args... > a, Callback< R, Args... > b)
Inequality test.
Time operator%(const Time &lhs, const Time &rhs)
Remainder (modulus) from the quotient of two Times.
bool operator==(const EventId &a, const EventId &b)
std::ostream & operator<<(std::ostream &os, const Angles &a)
Time & operator+=(Time &lhs, const Time &rhs)
Compound addition assignment for Time.
std::istream & operator>>(std::istream &is, Angles &a)
bool operator<(const EventId &a, const EventId &b)
Time & operator-=(Time &lhs, const Time &rhs)
Compound subtraction assignment for Time.
ns3::TracedCallback declaration and template implementation.
#define TRACED_VALUE_DEBUG(x)
Logging macro for TracedValue.
ns3::UintegerValue attribute value declarations and template implementations.