src/devices/wifi/propagation-loss-model.cc
changeset 3907 56e477db65b2
parent 3681 d3c79037d422
child 3908 232d52317a18
--- a/src/devices/wifi/propagation-loss-model.cc	Tue Oct 28 11:26:58 2008 +0100
+++ b/src/devices/wifi/propagation-loss-model.cc	Tue Oct 28 13:17:17 2008 +0100
@@ -43,10 +43,26 @@
   return tid;
 }
 
+PropagationLossModel::PropagationLossModel ()
+  : m_next (0)
+{}
 
 PropagationLossModel::~PropagationLossModel ()
 {}
 
+double 
+PropagationLossModel::GetLoss (Ptr<MobilityModel> a,
+                               Ptr<MobilityModel> b) const
+{
+  double self = DoGetLoss (a, b);
+  if (m_next != 0)
+    {
+      self += m_next->GetLoss (a, b);
+    }
+  return self;
+}
+
+
 NS_OBJECT_ENSURE_REGISTERED (RandomPropagationLossModel);
 
 TypeId 
@@ -69,7 +85,7 @@
 {}
 
 double 
-RandomPropagationLossModel::GetLoss (Ptr<MobilityModel> a,
+RandomPropagationLossModel::DoGetLoss (Ptr<MobilityModel> a,
 				     Ptr<MobilityModel> b) const
 {
   double rxc = -m_variable.GetValue ();
@@ -158,7 +174,7 @@
 
 
 double 
-FriisPropagationLossModel::GetLoss (Ptr<MobilityModel> a,
+FriisPropagationLossModel::DoGetLoss (Ptr<MobilityModel> a,
 				    Ptr<MobilityModel> b) const
 {
   /*
@@ -255,7 +271,7 @@
 }
   
 double 
-LogDistancePropagationLossModel::GetLoss (Ptr<MobilityModel> a,
+LogDistancePropagationLossModel::DoGetLoss (Ptr<MobilityModel> a,
                                           Ptr<MobilityModel> b) const
 {
   double distance = a->GetDistanceFrom (b);