diff options
Diffstat (limited to 'nexus/WifiController.h')
-rw-r--r-- | nexus/WifiController.h | 45 |
1 files changed, 39 insertions, 6 deletions
diff --git a/nexus/WifiController.h b/nexus/WifiController.h index b2f4530..c61d97a 100644 --- a/nexus/WifiController.h +++ b/nexus/WifiController.h @@ -20,15 +20,21 @@ #include <sys/types.h> #include "Controller.h" +#include "ScanResult.h" +#include "WifiNetwork.h" +#include "ISupplicantEventHandler.h" class NetInterface; class Supplicant; class WifiScanner; - -#include "ScanResult.h" -#include "WifiNetwork.h" - -class WifiController : public Controller { +class SupplicantAssociatingEvent; +class SupplicantAssociatedEvent; +class SupplicantConnectedEvent; +class SupplicantScanResultsEvent; +class SupplicantStateChangeEvent; +class SupplicantDisconnectedEvent; + +class WifiController : public Controller, public ISupplicantEventHandler { public: static const uint32_t SCAN_ENABLE_MASK = 0x01; static const uint32_t SCAN_ACTIVE_MASK = 0x02; @@ -45,12 +51,18 @@ private: char mModulePath[255]; char mModuleName[64]; char mModuleArgs[255]; + uint32_t mCurrentScanMode; WifiScanner *mScanner; + int mSupplicantState; + + ScanResultCollection *mLatestScanResults; + pthread_mutex_t mLatestScanResultsLock; + bool mEnabled; public: - WifiController(PropertyManager *propmngr, char *modpath, char *modname, char *modargs); + WifiController(PropertyManager *propmngr, IControllerHandler *handlers, char *modpath, char *modname, char *modargs); virtual ~WifiController() {} int start(); @@ -85,6 +97,27 @@ private: int setScanMode(uint32_t mode); int enable(); int disable(); + + // ISupplicantEventHandler methods + virtual void onAssociatingEvent(SupplicantAssociatingEvent *evt); + virtual void onAssociatedEvent(SupplicantAssociatedEvent *evt); + virtual void onConnectedEvent(SupplicantConnectedEvent *evt); + virtual void onScanResultsEvent(SupplicantScanResultsEvent *evt); + virtual void onStateChangeEvent(SupplicantStateChangeEvent *evt); + virtual void onConnectionTimeoutEvent(SupplicantConnectionTimeoutEvent *evt); + virtual void onDisconnectedEvent(SupplicantDisconnectedEvent *evt); +#if 0 + virtual void onTerminatingEvent(SupplicantEvent *evt); + virtual void onPasswordChangedEvent(SupplicantEvent *evt); + virtual void onEapNotificationEvent(SupplicantEvent *evt); + virtual void onEapStartedEvent(SupplicantEvent *evt); + virtual void onEapMethodEvent(SupplicantEvent *evt); + virtual void onEapSuccessEvent(SupplicantEvent *evt); + virtual void onEapFailureEvent(SupplicantEvent *evt); + virtual void onLinkSpeedEvent(SupplicantEvent *evt); + virtual void onDriverStateEvent(SupplicantEvent *evt); +#endif + }; #endif |