blob: 0cbac1e9811609927633460196ba2fc37d168b4b [file] [log] [blame]
mukesh agrawalaf571952011-07-14 14:31:12 -07001// Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef SUPPLICANT_PROCESS_PROXY_H_
6#define SUPPLICANT_PROCESS_PROXY_H_
7
8#include <map>
9#include <string>
10
11#include <base/basictypes.h>
12
Darin Petkov4a09b6b2011-07-19 12:52:06 -070013#include "shill/dbus_bindings/supplicant-process.h"
14#include "shill/supplicant_process_proxy_interface.h"
mukesh agrawalaf571952011-07-14 14:31:12 -070015
16namespace shill {
17
18class SupplicantProcessProxy : public SupplicantProcessProxyInterface {
19 public:
Darin Petkovaceede32011-07-18 15:32:38 -070020 SupplicantProcessProxy(DBus::Connection *bus,
21 const char *dbus_path,
22 const char *dbus_addr);
mukesh agrawalaf571952011-07-14 14:31:12 -070023 virtual ~SupplicantProcessProxy();
Darin Petkovaceede32011-07-18 15:32:38 -070024
mukesh agrawalaf571952011-07-14 14:31:12 -070025 virtual ::DBus::Path CreateInterface(
26 const std::map<std::string, ::DBus::Variant> &args);
27 virtual void RemoveInterface(const ::DBus::Path &path);
28 virtual ::DBus::Path GetInterface(const std::string &ifname);
Paul Stewart5581d072012-12-17 17:30:20 -080029 virtual void SetDebugLevel(const std::string &level);
30 virtual std::string GetDebugLevel();
mukesh agrawalaf571952011-07-14 14:31:12 -070031
32 private:
33 class Proxy : public fi::w1::wpa_supplicant1_proxy,
34 public ::DBus::ObjectProxy {
35 public:
Darin Petkovaceede32011-07-18 15:32:38 -070036 Proxy(DBus::Connection *bus, const char *dbus_path, const char *dbus_addr);
mukesh agrawalaf571952011-07-14 14:31:12 -070037 virtual ~Proxy();
38
39 private:
40 // signal handlers called by dbus-c++, via
41 // wpa_supplicant1_proxy interface.
42 virtual void InterfaceAdded(
43 const ::DBus::Path &path,
44 const std::map<std::string, ::DBus::Variant> &properties);
45 virtual void InterfaceRemoved(const ::DBus::Path &path);
46 virtual void PropertiesChanged(
47 const std::map<std::string, ::DBus::Variant> &properties);
48
49 DISALLOW_COPY_AND_ASSIGN(Proxy);
50 };
51
mukesh agrawalaf571952011-07-14 14:31:12 -070052 Proxy proxy_;
53
54 DISALLOW_COPY_AND_ASSIGN(SupplicantProcessProxy);
mukesh agrawalaf571952011-07-14 14:31:12 -070055};
56
57} // namespace shill
58
59#endif // SUPPLICANT_PROCESS_PROXY_H_