blob: ccd175085d010ed6ec4bbe7342084255ddb0629e [file] [log] [blame]
Darin Petkov9893d9c2012-05-17 15:27:31 -07001// Copyright (c) 2012 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 SHILL_WIMAX_NETWORK_PROXY_H_
6#define SHILL_WIMAX_NETWORK_PROXY_H_
7
Alex Vakulenko8a532292014-06-16 17:18:44 -07008#include <string>
9
Darin Petkov1e52a1b2012-05-21 10:35:56 +020010#include <base/callback.h>
11
Darin Petkov9893d9c2012-05-17 15:27:31 -070012#include "shill/wimax_network_proxy_interface.h"
Alex Vakulenkoa41ab512014-07-23 14:24:23 -070013#include "wimax_manager/dbus_proxies/org.chromium.WiMaxManager.Network.h"
Darin Petkov9893d9c2012-05-17 15:27:31 -070014
15namespace shill {
16
17class WiMaxNetworkProxy : public WiMaxNetworkProxyInterface {
18 public:
19 // Constructs a WiMaxManager.Network DBus object proxy at |path|.
20 WiMaxNetworkProxy(DBus::Connection *connection,
21 const DBus::Path &path);
22 virtual ~WiMaxNetworkProxy();
23
24 // Inherited from WiMaxNetwokProxyInterface.
Darin Petkov1e52a1b2012-05-21 10:35:56 +020025 virtual RpcIdentifier path() const;
26 virtual void set_signal_strength_changed_callback(
27 const SignalStrengthChangedCallback &callback);
Darin Petkov9893d9c2012-05-17 15:27:31 -070028 virtual uint32 Identifier(Error *error);
29 virtual std::string Name(Error *error);
30 virtual int Type(Error *error);
31 virtual int CINR(Error *error);
32 virtual int RSSI(Error *error);
Ben Chanac6e8362012-05-20 00:39:58 -070033 virtual int SignalStrength(Error *error);
Darin Petkov9893d9c2012-05-17 15:27:31 -070034
35 private:
36 class Proxy : public org::chromium::WiMaxManager::Network_proxy,
37 public DBus::ObjectProxy {
38 public:
39 Proxy(DBus::Connection *connection, const DBus::Path &path);
40 virtual ~Proxy();
41
Darin Petkov1e52a1b2012-05-21 10:35:56 +020042 void set_signal_strength_changed_callback(
43 const SignalStrengthChangedCallback &callback);
44
Darin Petkov9893d9c2012-05-17 15:27:31 -070045 private:
46 // Signal callbacks inherited from WiMaxManager::Network_proxy.
Darin Petkov1e52a1b2012-05-21 10:35:56 +020047 virtual void SignalStrengthChanged(const int32 &signal_strength);
Darin Petkov9893d9c2012-05-17 15:27:31 -070048
49 // Method callbacks inherited from WiMaxManager::Network_proxy.
50 // [None]
51
Darin Petkov1e52a1b2012-05-21 10:35:56 +020052 SignalStrengthChangedCallback signal_strength_changed_callback_;
53
Darin Petkov9893d9c2012-05-17 15:27:31 -070054 DISALLOW_COPY_AND_ASSIGN(Proxy);
55 };
56
57 static void FromDBusError(const DBus::Error &dbus_error, Error *error);
58
59 Proxy proxy_;
60
61 DISALLOW_COPY_AND_ASSIGN(WiMaxNetworkProxy);
62};
63
64} // namespace shill
65
66#endif // SHILL_WIMAX_NETWORK_PROXY_H_