A Discrete-Event Network Simulator
API
propagation-delay-model.h
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2005,2006,2007 INRIA
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License version 2 as
7  * published by the Free Software Foundation;
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17  *
18  * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
19  */
20 #ifndef PROPAGATION_DELAY_MODEL_H
21 #define PROPAGATION_DELAY_MODEL_H
22 
23 #include "ns3/ptr.h"
24 #include "ns3/object.h"
25 #include "ns3/nstime.h"
26 #include "ns3/random-variable-stream.h"
27 
28 namespace ns3 {
29 
30 class MobilityModel;
31 
38 {
39 public:
44  static TypeId GetTypeId (void);
45  virtual ~PropagationDelayModel ();
54  virtual Time GetDelay (Ptr<MobilityModel> a, Ptr<MobilityModel> b) const = 0;
64  int64_t AssignStreams (int64_t stream);
65 private:
70  virtual int64_t DoAssignStreams (int64_t stream) = 0;
71 };
72 
79 {
80 public:
85  static TypeId GetTypeId (void);
86 
93 private:
94  virtual int64_t DoAssignStreams (int64_t stream);
96 };
97 
104 {
105 public:
110  static TypeId GetTypeId (void);
111 
116  virtual Time GetDelay (Ptr<MobilityModel> a, Ptr<MobilityModel> b) const;
120  void SetSpeed (double speed);
124  double GetSpeed (void) const;
125 private:
126  virtual int64_t DoAssignStreams (int64_t stream);
127  double m_speed;
128 };
129 
130 } // namespace ns3
131 
132 #endif /* PROPAGATION_DELAY_MODEL_H */
Simulation virtual time values and global simulation resolution.
Definition: nstime.h:102
static TypeId GetTypeId(void)
Get the type ID.
virtual Time GetDelay(Ptr< MobilityModel > a, Ptr< MobilityModel > b) const =0
RandomPropagationDelayModel()
Use the default parameters from PropagationDelayRandomDistribution.
Ptr< RandomVariableStream > m_variable
random generator
static TypeId GetTypeId(void)
Get the type ID.
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.
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.
the propagation delay is random
ConstantSpeedPropagationDelayModel()
Use the default parameters from PropagationDelayConstantSpeed.
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.
Definition: object.h:87
a unique identifier for an interface.
Definition: type-id.h:58