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;
Simulation virtual time values and global simulation resolution.
void SetStream(int64_t stream)
Specifies the stream number for the RngStream.
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register an Object subclass with the TypeId system.
Hold variables of type string.
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
Get the next random value as a double drawn from the 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. ...
virtual Time GetDelay(Ptr< MobilityModel > a, Ptr< MobilityModel > b) const
virtual Time GetDelay(Ptr< MobilityModel > a, Ptr< MobilityModel > b) const
calculate a propagation delay.
double GetDistanceFrom(Ptr< const MobilityModel > position) const
double GetSpeed(void) const
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'...
virtual ~RandomPropagationDelayModel()
a unique identifier for an interface.
TypeId SetParent(TypeId tid)
Set the parent TypeId.