21 #include "ns3/mobility-model.h"
22 #include "ns3/double.h"
23 #include "ns3/string.h"
24 #include "ns3/pointer.h"
33 static TypeId tid =
TypeId (
"ns3::PropagationDelayModel")
56 static TypeId tid =
TypeId (
"ns3::RandomPropagationDelayModel")
58 .AddConstructor<RandomPropagationDelayModel> ()
59 .AddAttribute (
"Variable",
60 "The random variable which generates random delays (s).",
63 MakePointerChecker<RandomVariableStream> ())
92 static TypeId tid =
TypeId (
"ns3::ConstantSpeedPropagationDelayModel")
94 .AddConstructor<ConstantSpeedPropagationDelayModel> ()
95 .AddAttribute (
"Speed",
"The propagation speed (m/s) in the propagation medium being considered. The default value is the propagation speed of light in the vacuum.",
98 MakeDoubleChecker<double> ())
110 double seconds = distance /
m_speed;
Simulation virtual time values and global simulation resolution.
void SetStream(int64_t stream)
Specifies the stream number for this RNG stream.
double GetDistanceFrom(Ptr< const MobilityModel > position) const
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register an Object subclass with the TypeId system.
Hold variables of type string.
virtual Time GetDelay(Ptr< MobilityModel > a, Ptr< MobilityModel > b) const
virtual Time GetDelay(Ptr< MobilityModel > a, Ptr< MobilityModel > b) const
static TypeId GetTypeId(void)
Get the type ID.
RandomPropagationDelayModel()
Use the default parameters from PropagationDelayRandomDistribution.
virtual ~PropagationDelayModel()
Ptr< RandomVariableStream > m_variable
random generator
virtual double GetValue(void)=0
Returns a random double from the underlying distribution.
void SetSpeed(double speed)
static TypeId GetTypeId(void)
Get the type ID.
Ptr< const AttributeAccessor > MakePointerAccessor(T1 a1)
Create an AttributeAccessor for a class data member, or a lone class get functor or set method...
virtual int64_t DoAssignStreams(int64_t stream)=0
Subclasses must implement this; those not using random variables can return zero. ...
calculate a propagation delay.
the propagation speed is constant
int64_t AssignStreams(int64_t stream)
If this delay model uses objects of type RandomVariableStream, set the stream numbers to the integers...
virtual int64_t DoAssignStreams(int64_t stream)
Subclasses must implement this; those not using random variables can return zero. ...
Every class exported by the ns3 library is enclosed in the ns3 namespace.
Ptr< const AttributeAccessor > MakeDoubleAccessor(T1 a1)
Create an AttributeAccessor for a class data member, or a lone class get functor or set method...
the propagation delay is random
ConstantSpeedPropagationDelayModel()
Use the default parameters from PropagationDelayConstantSpeed.
Time Seconds(double value)
Construct a Time in the indicated unit.
virtual int64_t DoAssignStreams(int64_t stream)
Subclasses must implement this; those not using random variables can return zero. ...
static TypeId GetTypeId(void)
Get the type ID.
A base class which provides memory management and object aggregation.
This class can be used to hold variables of floating point type such as 'double' or 'float'...
double GetSpeed(void) const
virtual ~RandomPropagationDelayModel()
a unique identifier for an interface.
TypeId SetParent(TypeId tid)