blob: 97ab1781821f0c9faa517f23903a1f9d067494ea [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);
Ben Chan5ea763b2014-08-13 11:07:54 -070022 ~WiMaxNetworkProxy() override;
Darin Petkov9893d9c2012-05-17 15:27:31 -070023
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);
Ben Chan7fab8972014-08-10 17:14:46 -070028 virtual uint32_t Identifier(Error *error);
Darin Petkov9893d9c2012-05-17 15:27:31 -070029 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);
Ben Chan5ea763b2014-08-13 11:07:54 -070040 ~Proxy() override;
Darin Petkov9893d9c2012-05-17 15:27:31 -070041
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.
Ben Chan7fab8972014-08-10 17:14:46 -070047 virtual void SignalStrengthChanged(const int32_t &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_