summaryrefslogtreecommitdiff
path: root/dbus_properties_proxy.h
diff options
context:
space:
mode:
authorDarin Petkov <petkov@chromium.org>2011-07-19 16:30:49 -0700
committerDarin Petkov <petkov@chromium.org>2011-07-20 13:37:27 -0700
commit5c97ac5100dca5e710a25f10a04417e66c2dfc12 (patch)
tree0f46945be0e0298ac716250440922ab98d4c4a29 /dbus_properties_proxy.h
parent4a09b6bba1bf564e4f2624afbaad24d121a4e291 (diff)
downloadshill-5c97ac5100dca5e710a25f10a04417e66c2dfc12.tar.gz
shill: Create Modem instances for ModemManager.Modem paths.
Each Modem instance will manage a single ModemManager.Modem and a single Cellular device. BUG=chromium-os:17818 TEST=unit tests, tested on device Change-Id: I4798224f0bc824bd6d1177e6a6b89f65ca4725ba Reviewed-on: http://gerrit.chromium.org/gerrit/4356 Tested-by: Darin Petkov <petkov@chromium.org> Reviewed-by: Chris Masone <cmasone@chromium.org>
Diffstat (limited to 'dbus_properties_proxy.h')
-rw-r--r--dbus_properties_proxy.h62
1 files changed, 62 insertions, 0 deletions
diff --git a/dbus_properties_proxy.h b/dbus_properties_proxy.h
new file mode 100644
index 00000000..7b4efb9a
--- /dev/null
+++ b/dbus_properties_proxy.h
@@ -0,0 +1,62 @@
+// Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef SHILL_DBUS_PROPERTIES_PROXY_
+#define SHILL_DBUS_PROPERTIES_PROXY_
+
+#include <base/basictypes.h>
+
+#include "shill/dbus_bindings/dbus-properties.h"
+#include "shill/dbus_properties_proxy_interface.h"
+
+namespace shill {
+
+class Modem;
+
+class DBusPropertiesProxy : public DBusPropertiesProxyInterface {
+ public:
+ DBusPropertiesProxy(DBus::Connection *connection,
+ Modem *modem,
+ const std::string &path,
+ const std::string &service);
+ virtual ~DBusPropertiesProxy();
+
+ // Inherited from DBusPropertiesProxyInterface.
+ virtual std::map<std::string, DBus::Variant> GetAll(
+ const std::string &interface_name);
+
+ private:
+ class Proxy : public org::freedesktop::DBus::Properties_proxy,
+ public DBus::ObjectProxy {
+ public:
+ Proxy(DBus::Connection *connection,
+ Modem *modem,
+ const std::string &path,
+ const std::string &service);
+ virtual ~Proxy();
+
+ private:
+ // Signal callbacks inherited from DBusProperties_proxy.
+ virtual void MmPropertiesChanged(
+ const std::string &interface,
+ const std::map<std::string, DBus::Variant> &properties);
+
+ virtual void PropertiesChanged(
+ const std::string &interface,
+ const std::map<std::string, DBus::Variant> &changed_properties,
+ const std::vector<std::string> &invalidated_properties);
+
+ Modem *modem_;
+
+ DISALLOW_COPY_AND_ASSIGN(Proxy);
+ };
+
+ Proxy proxy_;
+
+ DISALLOW_COPY_AND_ASSIGN(DBusPropertiesProxy);
+};
+
+} // namespace shill
+
+#endif // SHILL_DBUS_PROPERTIES_PROXY_