src/devices/wifi/onoe-wifi-manager.h
changeset 6065 0f012e7d9128
parent 2962 39f72ca0ba8e
child 6339 84cbcc1a3f16
--- a/src/devices/wifi/onoe-wifi-manager.h	Wed Jan 06 16:25:53 2010 +0100
+++ b/src/devices/wifi/onoe-wifi-manager.h	Wed Jan 06 16:26:07 2010 +0100
@@ -25,6 +25,8 @@
 
 namespace ns3 {
 
+class OnoeWifiRemoteStation;
+
 /**
  * \brief an implementation of rate control algorithm developed 
  *        by Atsushi Onoe
@@ -42,49 +44,30 @@
   OnoeWifiManager ();
 
 private:
-  friend class OnoeWifiRemoteStation;
-  virtual WifiRemoteStation *CreateStation (void);
+  // overriden from base class
+  virtual class WifiRemoteStation *DoCreateStation (void) const;
+  virtual void DoReportRxOk (WifiRemoteStation *station, 
+                             double rxSnr, WifiMode txMode);
+  virtual void DoReportRtsFailed (WifiRemoteStation *station);
+  virtual void DoReportDataFailed (WifiRemoteStation *station);
+  virtual void DoReportRtsOk (WifiRemoteStation *station,
+                              double ctsSnr, WifiMode ctsMode, double rtsSnr);
+  virtual void DoReportDataOk (WifiRemoteStation *station,
+                               double ackSnr, WifiMode ackMode, double dataSnr);
+  virtual void DoReportFinalRtsFailed (WifiRemoteStation *station);
+  virtual void DoReportFinalDataFailed (WifiRemoteStation *station);
+  virtual WifiMode DoGetDataMode (WifiRemoteStation *station, uint32_t size);
+  virtual WifiMode DoGetRtsMode (WifiRemoteStation *station);
+  virtual bool IsLowLatency (void) const;
+
+  void UpdateRetry (OnoeWifiRemoteStation *station);
+  void UpdateMode (OnoeWifiRemoteStation *station);
 
   Time m_updatePeriod;
   uint32_t m_addCreditThreshold;
   uint32_t m_raiseThreshold;
 };
 
-class OnoeWifiRemoteStation : public WifiRemoteStation
-{
-public:
-  OnoeWifiRemoteStation (Ptr<OnoeWifiManager> stations);
-
-  virtual ~OnoeWifiRemoteStation ();
-
-protected:
-  virtual void DoReportRxOk (double rxSnr, WifiMode txMode);
-  virtual void DoReportRtsFailed (void);
-  virtual void DoReportDataFailed (void);
-  virtual void DoReportRtsOk (double ctsSnr, WifiMode ctsMode, double rtsSnr);
-  virtual void DoReportDataOk (double ackSnr, WifiMode ackMode, double dataSnr);
-  virtual void DoReportFinalRtsFailed (void);
-  virtual void DoReportFinalDataFailed (void);
-
-private:
-  virtual Ptr<WifiRemoteStationManager> GetManager (void) const;
-  virtual WifiMode DoGetDataMode (uint32_t size);
-  virtual WifiMode DoGetRtsMode (void);
-
-  void UpdateRetry (void);
-  void UpdateMode (void);
-
-  Ptr<OnoeWifiManager> m_stations;
-  Time m_nextModeUpdate;
-  uint32_t m_shortRetry;
-  uint32_t m_longRetry;
-  uint32_t m_tx_ok;
-  uint32_t m_tx_err;
-  uint32_t m_tx_retr;
-  uint32_t m_tx_upper;
-  uint32_t m_txrate;
-};
-
 } // namespace ns3
 
 #endif /* ONOE_WIFI_MANAGER_H */