Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(22)

Side by Side Diff: dbus_interface.h

Issue 4029002: AU: Don't use network on expensive connection types (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/update_engine.git
Patch Set: Created 10 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « SConstruct ('k') | flimflam_proxy.h » ('j') | flimflam_proxy.cc » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2010 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 CHROMEOS_PLATFORM_UPDATE_ENGINE_DBUS_INTERFACE_H__
6 #define CHROMEOS_PLATFORM_UPDATE_ENGINE_DBUS_INTERFACE_H__
7
8 // This class interfaces with DBus. The interface allows it to be mocked.
9
10 #include <dbus/dbus-glib.h>
11
12 namespace chromeos_update_engine {
13
14 class DbusGlibInterface {
15 public:
16 // wraps dbus_g_proxy_new_for_name_owner
17 virtual DBusGProxy* ProxyNewForNameOwner(DBusGConnection* connection,
18 const char* name,
19 const char* path,
20 const char* interface,
21 GError** error) = 0;
22
23 // wraps g_object_unref
24 virtual void ProxyUnref(DBusGProxy* proxy) = 0;
25
26 // wraps dbus_g_bus_get
27 virtual DBusGConnection* BusGet(DBusBusType type, GError** error) = 0;
28
29 // wraps dbus_g_proxy_call
30 virtual gboolean ProxyCall(DBusGProxy* proxy,
31 const char* method,
32 GError** error,
33 GType first_arg_type,
34 GType var_arg1,
35 GHashTable** var_arg2,
36 GType var_arg3) = 0;
37 };
38
39 class ConcreteDbusGlib : public DbusGlibInterface {
40 virtual DBusGProxy* ProxyNewForNameOwner(DBusGConnection* connection,
41 const char* name,
42 const char* path,
43 const char* interface,
44 GError** error) {
45 return dbus_g_proxy_new_for_name_owner(connection,
46 name,
47 path,
48 interface,
49 error);
50 }
51
52 virtual void ProxyUnref(DBusGProxy* proxy) {
53 g_object_unref(proxy);
54 }
55
56 virtual DBusGConnection* BusGet(DBusBusType type, GError** error) {
57 return dbus_g_bus_get(type, error);
58 }
59
60 virtual gboolean ProxyCall(DBusGProxy* proxy,
61 const char* method,
62 GError** error,
63 GType first_arg_type,
64 GType var_arg1,
65 GHashTable** var_arg2,
66 GType var_arg3) {
67 return dbus_g_proxy_call(
68 proxy, method, error, first_arg_type, var_arg1, var_arg2, var_arg3);
69 }
70 };
71
72 } // namespace chromeos_update_engine
73
74 #endif // CHROMEOS_PLATFORM_UPDATE_ENGINE_DBUS_INTERFACE_H__
OLDNEW
« no previous file with comments | « SConstruct ('k') | flimflam_proxy.h » ('j') | flimflam_proxy.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698