--- a/src/devices/wifi/aarf-wifi-manager.cc Fri Apr 17 09:56:04 2009 +0200
+++ b/src/devices/wifi/aarf-wifi-manager.cc Fri Apr 17 09:59:54 2009 +0200
@@ -71,39 +71,34 @@
WifiRemoteStation *
AarfWifiManager::CreateStation (void)
{
- return new AarfWifiRemoteStation (this, m_minTimerThreshold,
- m_minSuccessThreshold,
- m_successK,
- m_maxSuccessThreshold,
- m_timerK);
+ return new AarfWifiRemoteStation (this);
}
-AarfWifiRemoteStation::AarfWifiRemoteStation (Ptr<AarfWifiManager> stations,
- uint32_t minTimerThreshold,
- uint32_t minSuccessThreshold,
- double successK,
- uint32_t maxSuccessThreshold,
- double timerK)
- : ArfWifiRemoteStation (stations, minTimerThreshold, minSuccessThreshold),
- m_successK (successK),
- m_maxSuccessThreshold (maxSuccessThreshold),
- m_timerK (timerK)
+AarfWifiRemoteStation::AarfWifiRemoteStation (Ptr<AarfWifiManager> manager)
+ : ArfWifiRemoteStation (manager),
+ m_manager (manager)
{}
AarfWifiRemoteStation::~AarfWifiRemoteStation ()
{}
+Ptr<WifiRemoteStationManager>
+AarfWifiRemoteStation::GetManager (void) const
+{
+ return m_manager;
+}
+
void
AarfWifiRemoteStation::ReportRecoveryFailure (void)
{
- SetSuccessThreshold ((int)(Min (GetSuccessThreshold () * m_successK,
- m_maxSuccessThreshold)));
+ SetSuccessThreshold ((int)(Min (GetSuccessThreshold () * m_manager->m_successK,
+ m_manager->m_maxSuccessThreshold)));
SetTimerTimeout ((int)(Max (GetMinTimerTimeout (),
- GetSuccessThreshold () * m_timerK)));
+ GetSuccessThreshold () * m_manager->m_timerK)));
}
void
--- a/src/devices/wifi/aarf-wifi-manager.h Fri Apr 17 09:56:04 2009 +0200
+++ b/src/devices/wifi/aarf-wifi-manager.h Fri Apr 17 09:59:54 2009 +0200
@@ -17,8 +17,8 @@
*
* Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
*/
-#ifndef AARF_MAC_STATIONS_H
-#define AARF_MAC_STATIONS_H
+#ifndef AARF_WIFI_MANAGER_H
+#define AARF_WIFI_MANAGER_H
#include "arf-wifi-manager.h"
@@ -39,6 +39,7 @@
AarfWifiManager ();
virtual ~AarfWifiManager ();
private:
+ friend class AarfWifiRemoteStation;
virtual class WifiRemoteStation *CreateStation (void);
uint32_t m_minTimerThreshold;
uint32_t m_minSuccessThreshold;
@@ -50,24 +51,18 @@
class AarfWifiRemoteStation : public ArfWifiRemoteStation
{
public:
- AarfWifiRemoteStation (Ptr<AarfWifiManager> stations,
- uint32_t minTimerThreshold,
- uint32_t minSuccessThreshold,
- double successK,
- uint32_t maxSuccessThreshold,
- double timerK);
+ AarfWifiRemoteStation (Ptr<AarfWifiManager> stations);
virtual ~AarfWifiRemoteStation ();
private:
virtual void ReportRecoveryFailure (void);
virtual void ReportFailure (void);
+ virtual Ptr<WifiRemoteStationManager> GetManager (void) const;
- double m_successK;
- uint32_t m_maxSuccessThreshold;
- double m_timerK;
+ Ptr<AarfWifiManager> m_manager;
};
} // namespace ns3
-#endif /* AARF_MAC_STATIONS_H */
+#endif /* AARF_WIFI_MANAGER_H */
--- a/src/devices/wifi/arf-wifi-manager.cc Fri Apr 17 09:56:04 2009 +0200
+++ b/src/devices/wifi/arf-wifi-manager.cc Fri Apr 17 09:59:54 2009 +0200
@@ -28,15 +28,11 @@
namespace ns3 {
-ArfWifiRemoteStation::ArfWifiRemoteStation (Ptr<ArfWifiManager> stations,
- int minTimerTimeout,
- int minSuccessThreshold)
- : m_stations (stations)
+ArfWifiRemoteStation::ArfWifiRemoteStation (Ptr<ArfWifiManager> manager)
+ : m_manager (manager)
{
- m_minTimerTimeout = minTimerTimeout;
- m_minSuccessThreshold = minSuccessThreshold;
- m_successThreshold = m_minSuccessThreshold;
- m_timerTimeout = m_minTimerTimeout;
+ m_successThreshold = m_manager->m_successThreshold;
+ m_timerTimeout = m_manager->m_timerThreshold;
m_rate = GetMinRate ();
m_success = 0;
@@ -189,11 +185,11 @@
{}
uint32_t ArfWifiRemoteStation::GetMinTimerTimeout (void)
{
- return m_minTimerTimeout;
+ return m_manager->m_timerThreshold;
}
uint32_t ArfWifiRemoteStation::GetMinSuccessThreshold (void)
{
- return m_minSuccessThreshold;
+ return m_manager->m_successThreshold;
}
uint32_t ArfWifiRemoteStation::GetTimerTimeout (void)
{
@@ -205,18 +201,18 @@
}
void ArfWifiRemoteStation::SetTimerTimeout (uint32_t timerTimeout)
{
- NS_ASSERT (timerTimeout >= m_minTimerTimeout);
+ NS_ASSERT (timerTimeout >= m_manager->m_timerThreshold);
m_timerTimeout = timerTimeout;
}
void ArfWifiRemoteStation::SetSuccessThreshold (uint32_t successThreshold)
{
- NS_ASSERT (successThreshold >= m_minSuccessThreshold);
+ NS_ASSERT (successThreshold >= m_manager->m_successThreshold);
m_successThreshold = successThreshold;
}
Ptr<WifiRemoteStationManager>
ArfWifiRemoteStation::GetManager (void) const
{
- return m_stations;
+ return m_manager;
}
NS_OBJECT_ENSURE_REGISTERED (ArfWifiManager);
@@ -247,7 +243,7 @@
WifiRemoteStation *
ArfWifiManager::CreateStation (void)
{
- return new ArfWifiRemoteStation (this, m_timerThreshold, m_successThreshold);
+ return new ArfWifiRemoteStation (this);
}
} // namespace ns3
--- a/src/devices/wifi/arf-wifi-manager.h Fri Apr 17 09:56:04 2009 +0200
+++ b/src/devices/wifi/arf-wifi-manager.h Fri Apr 17 09:59:54 2009 +0200
@@ -46,6 +46,7 @@
virtual ~ArfWifiManager ();
private:
+ friend class ArfWifiRemoteStation;
virtual class WifiRemoteStation *CreateStation (void);
uint32_t m_timerThreshold;
uint32_t m_successThreshold;
@@ -55,9 +56,7 @@
class ArfWifiRemoteStation : public WifiRemoteStation
{
public:
- ArfWifiRemoteStation (Ptr<ArfWifiManager> stations,
- int minTimerTimeout,
- int minSuccessThreshold);
+ ArfWifiRemoteStation (Ptr<ArfWifiManager> manager);
virtual ~ArfWifiRemoteStation ();
protected:
@@ -85,10 +84,7 @@
uint32_t m_rate;
- uint32_t m_minTimerTimeout;
- uint32_t m_minSuccessThreshold;
-
- Ptr<ArfWifiManager> m_stations;
+ Ptr<ArfWifiManager> m_manager;
private:
// overriden by AarfMacStation.