blob: cc7d939a4add45066282c03e91f30fe500de520a [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
13#include "supplicant-process.h"
14#include "supplicant_process_proxy_interface.h"
15
16namespace shill {
17
18class SupplicantProcessProxy : public SupplicantProcessProxyInterface {
19 public:
20 SupplicantProcessProxy(const char *dbus_path, const char *dbus_addr);
21 virtual ~SupplicantProcessProxy();
22 virtual ::DBus::Path CreateInterface(
23 const std::map<std::string, ::DBus::Variant> &args);
24 virtual void RemoveInterface(const ::DBus::Path &path);
25 virtual ::DBus::Path GetInterface(const std::string &ifname);
26
27 private:
28 class Proxy : public fi::w1::wpa_supplicant1_proxy,
29 public ::DBus::ObjectProxy {
30 public:
31 Proxy(DBus::Connection *bus, const char *dbus_path,
32 const char *dbus_addr);
33 virtual ~Proxy();
34
35 private:
36 // signal handlers called by dbus-c++, via
37 // wpa_supplicant1_proxy interface.
38 virtual void InterfaceAdded(
39 const ::DBus::Path &path,
40 const std::map<std::string, ::DBus::Variant> &properties);
41 virtual void InterfaceRemoved(const ::DBus::Path &path);
42 virtual void PropertiesChanged(
43 const std::map<std::string, ::DBus::Variant> &properties);
44
45 DISALLOW_COPY_AND_ASSIGN(Proxy);
46 };
47
48 DBus::Connection connection_;
49 Proxy proxy_;
50
51 DISALLOW_COPY_AND_ASSIGN(SupplicantProcessProxy);
52
53};
54
55} // namespace shill
56
57#endif // SUPPLICANT_PROCESS_PROXY_H_