blob: 5b5fafa476a25d42457cba3e2d1f674d70eca2c6 [file] [log] [blame]
Dmitry Shmidte4663042016-04-04 10:07:49 -07001/*
2 * binder interface for wpa_supplicant daemon
3 * Copyright (c) 2004-2016, Jouni Malinen <j@w1.fi>
4 * Copyright (c) 2004-2016, Roshan Pius <rpius@google.com>
5 *
6 * This software may be distributed under the terms of the BSD license.
7 * See README for more details.
8 */
9
Dmitry Shmidt7f2c7532016-08-15 09:48:12 -070010#ifndef WPA_SUPPLICANT_BINDER_SUPPLICANT_H
11#define WPA_SUPPLICANT_BINDER_SUPPLICANT_H
Dmitry Shmidte4663042016-04-04 10:07:49 -070012
Roshan Piusd6e37512016-07-07 13:20:46 -070013#include <android-base/macros.h>
14
Dmitry Shmidte4663042016-04-04 10:07:49 -070015#include "fi/w1/wpa_supplicant/BnSupplicant.h"
16#include "fi/w1/wpa_supplicant/IIface.h"
17#include "fi/w1/wpa_supplicant/ISupplicantCallbacks.h"
18
19extern "C" {
Dmitry Shmidte4663042016-04-04 10:07:49 -070020#include "utils/common.h"
Dmitry Shmidt7f2c7532016-08-15 09:48:12 -070021#include "utils/includes.h"
Dmitry Shmidte4663042016-04-04 10:07:49 -070022#include "../wpa_supplicant_i.h"
23}
24
25namespace wpa_supplicant_binder {
26
27/**
28 * Implementation of the supplicant binder object. This binder
29 * object is used core for global control operations on
30 * wpa_supplicant.
31 */
32class Supplicant : public fi::w1::wpa_supplicant::BnSupplicant
33{
34public:
35 Supplicant(struct wpa_global *global);
Roshan Piusd6e37512016-07-07 13:20:46 -070036 ~Supplicant() override = default;
Dmitry Shmidte4663042016-04-04 10:07:49 -070037
38 android::binder::Status CreateInterface(
Dmitry Shmidt7f2c7532016-08-15 09:48:12 -070039 const android::os::PersistableBundle &params,
40 android::sp<fi::w1::wpa_supplicant::IIface> *aidl_return) override;
41 android::binder::Status
42 RemoveInterface(const std::string &ifname) override;
Dmitry Shmidte4663042016-04-04 10:07:49 -070043 android::binder::Status GetInterface(
Dmitry Shmidt7f2c7532016-08-15 09:48:12 -070044 const std::string &ifname,
45 android::sp<fi::w1::wpa_supplicant::IIface> *aidl_return) override;
Dmitry Shmidte4663042016-04-04 10:07:49 -070046
47private:
48 /* Raw pointer to the global structure maintained by the core. */
49 struct wpa_global *wpa_global_;
50 /* All the callback objects registered by the clients. */
51 std::vector<android::sp<fi::w1::wpa_supplicant::ISupplicantCallbacks>>
Dmitry Shmidt7f2c7532016-08-15 09:48:12 -070052 callbacks_;
Roshan Piusd6e37512016-07-07 13:20:46 -070053
54 DISALLOW_COPY_AND_ASSIGN(Supplicant);
Dmitry Shmidte4663042016-04-04 10:07:49 -070055};
56
57} /* namespace wpa_supplicant_binder */
58
Dmitry Shmidt7f2c7532016-08-15 09:48:12 -070059#endif /* WPA_SUPPLICANT_BINDER_SUPPLICANT_H */