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")
35 .SetGroupName (
"Propagation")
57 static TypeId tid =
TypeId (
"ns3::RandomPropagationDelayModel")
59 .SetGroupName (
"Propagation")
61 .AddAttribute (
"Variable",
62 "The random variable which generates random delays (s).",
65 MakePointerChecker<RandomVariableStream> ())
94 static TypeId tid =
TypeId (
"ns3::ConstantSpeedPropagationDelayModel")
96 .SetGroupName (
"Propagation")
98 .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.",
101 MakeDoubleChecker<double> ())
113 double seconds = distance /
m_speed;
the propagation speed is constant
Time GetDelay(Ptr< MobilityModel > a, Ptr< MobilityModel > b) const override
static TypeId GetTypeId(void)
Get the type ID.
void SetSpeed(double speed)
int64_t DoAssignStreams(int64_t stream) override
Assign a fixed random variable stream number to the random variables used by this model.
ConstantSpeedPropagationDelayModel()
Use the default parameters from PropagationDelayConstantSpeed.
double GetSpeed(void) const
This class can be used to hold variables of floating point type such as 'double' or 'float'.
double GetDistanceFrom(Ptr< const MobilityModel > position) const
A base class which provides memory management and object aggregation.
calculate a propagation delay.
virtual int64_t DoAssignStreams(int64_t stream)=0
Assign a fixed random variable stream number to the random variables used by this model.
int64_t AssignStreams(int64_t stream)
If this delay model uses objects of type RandomVariableStream, set the stream numbers to the integers...
static TypeId GetTypeId(void)
Get the type ID.
virtual ~PropagationDelayModel()
the propagation delay is random
RandomPropagationDelayModel()
Use the default parameters from PropagationDelayRandomDistribution.
virtual ~RandomPropagationDelayModel()
Ptr< RandomVariableStream > m_variable
random generator
int64_t DoAssignStreams(int64_t stream) override
Assign a fixed random variable stream number to the random variables used by this model.
static TypeId GetTypeId(void)
Get the type ID.
Time GetDelay(Ptr< MobilityModel > a, Ptr< MobilityModel > b) const override
virtual double GetValue(void)=0
Get the next random value as a double drawn from the distribution.
void SetStream(int64_t stream)
Specifies the stream number for the RngStream.
Hold variables of type string.
Simulation virtual time values and global simulation resolution.
a unique identifier for an interface.
TypeId SetParent(TypeId tid)
Set the parent TypeId.
Ptr< const AttributeAccessor > MakeDoubleAccessor(T1 a1)
Create an AttributeAccessor for a class data member, or a lone class get functor or set method.
Ptr< const AttributeAccessor > MakePointerAccessor(T1 a1)
Create an AttributeAccessor for a class data member, or a lone class get functor or set method.
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register an Object subclass with the TypeId system.
Time Seconds(double value)
Construct a Time in the indicated unit.
Every class exported by the ns3 library is enclosed in the ns3 namespace.