src/devices/wifi/propagation-delay-model.h
author Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
Fri, 24 Aug 2007 15:12:12 +0200
changeset 1882 061f7f7f9992
child 1957 9ce0828c6a19
permissions -rw-r--r--
start of work towards port of wifi code

#ifndef PROPAGATION_DELAY_MODEL_H
#define PROPAGATION_DELAY_MODEL_H

#include "ns3/ptr.h"
#include "ns3/object.h"
#include "ns3/nstime.h"

namespace ns3 {

class RandomVariable;

class PropagationDelayModel : public Object
{
public:
  virtual ~PropagationDelayModel ();
  virtual Time GetDelay (double distance) const = 0;
};

class RandomPropagationDelayModel : public PropagationDelayModel
{
public:
  RandomPropagationDelayModel (const RandomVariable &variable);
  virtual ~RandomPropagationDelayModel ();
  virtual Time GetDelay (double distance) const;
private:
  RandomVariable *m_variable;
};

class ConstantSpeedPropagationDelayModel : public PropagationDelayModel
{
public:
  ConstantSpeedPropagationDelayModel ();
  ConstantSpeedPropagationDelayModel (double speed);
  virtual Time GetDelay (double distance) const;
  void SetSpeed (double speed);
  double GetSpeed (void) const;
private:
  double m_speed;
};

} // namespace ns3

#endif /* PROPAGATION_DELAY_MODEL_H */