src/devices/wifi/nqap-wifi-mac.cc
changeset 4406 39f119de91ef
parent 4272 b40ce56e0247
child 4461 ab9b58d664d7
--- a/src/devices/wifi/nqap-wifi-mac.cc	Fri Apr 24 09:57:16 2009 +0200
+++ b/src/devices/wifi/nqap-wifi-mac.cc	Fri Apr 24 10:01:41 2009 +0200
@@ -60,7 +60,8 @@
                    MakeBooleanChecker ())
     .AddAttribute ("DcaTxop", "The DcaTxop object",
                    PointerValue (),
-                   MakePointerAccessor (&NqapWifiMac::DoGetDcaTxop),
+                   MakePointerAccessor (&NqapWifiMac::GetDcaTxop,
+                                        &NqapWifiMac::SetDcaTxop),
                    MakePointerChecker<DcaTxop> ()) 
     ;
   return tid;
@@ -78,12 +79,6 @@
   m_dcfManager = new DcfManager ();
   m_dcfManager->SetupLowListener (m_low);
 
-  m_dca = CreateObject<DcaTxop> ();
-  m_dca->SetLow (m_low);
-  m_dca->SetManager (m_dcfManager);
-  m_dca->SetTxOkCallback (MakeCallback (&NqapWifiMac::TxOk, this));
-  m_dca->SetTxFailedCallback (MakeCallback (&NqapWifiMac::TxFailed, this));
-
   m_beaconDca = CreateObject<DcaTxop> ();
   m_beaconDca->SetAifsn(1);
   m_beaconDca->SetMinCw(0);
@@ -108,6 +103,7 @@
   m_phy = 0;
   m_dca = 0;
   m_beaconDca = 0;
+  m_stationManager = 0;
   m_beaconEvent.Cancel ();
   WifiMac::DoDispose ();
 }
@@ -300,8 +296,7 @@
   hdr.SetAddr3 (from);
   hdr.SetDsFrom ();
   hdr.SetDsNotTo ();
-
-  m_dca->Queue (packet, hdr);  
+  m_dca->Queue (packet, hdr);
 }
 void 
 NqapWifiMac::Enqueue (Ptr<const Packet> packet, Mac48Address to, Mac48Address from)
@@ -565,9 +560,19 @@
     }  
 }
 Ptr<DcaTxop>
-NqapWifiMac::DoGetDcaTxop(void) const
+NqapWifiMac::GetDcaTxop(void) const
 {
   return m_dca;
 }
 
+void
+NqapWifiMac::SetDcaTxop (Ptr<DcaTxop> dcaTxop)
+{
+  m_dca = dcaTxop;
+  m_dca->SetLow (m_low);
+  m_dca->SetManager (m_dcfManager);
+  m_dca->SetTxOkCallback (MakeCallback (&NqapWifiMac::TxOk, this));
+  m_dca->SetTxFailedCallback (MakeCallback (&NqapWifiMac::TxFailed, this));
+}
+
 } // namespace ns3