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

Side by Side Diff: dbus/object_proxy.h

Issue 563763004: Add ObjectProxy::CallMethodAndBlockWithErrorDetails methods (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed review comment Created 6 years, 3 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
« no previous file with comments | « dbus/mock_unittest.cc ('k') | dbus/object_proxy.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef DBUS_OBJECT_PROXY_H_ 5 #ifndef DBUS_OBJECT_PROXY_H_
6 #define DBUS_OBJECT_PROXY_H_ 6 #define DBUS_OBJECT_PROXY_H_
7 7
8 #include <dbus/dbus.h> 8 #include <dbus/dbus.h>
9 9
10 #include <map> 10 #include <map>
11 #include <set> 11 #include <set>
12 #include <string> 12 #include <string>
13 #include <vector> 13 #include <vector>
14 14
15 #include "base/callback.h" 15 #include "base/callback.h"
16 #include "base/memory/ref_counted.h" 16 #include "base/memory/ref_counted.h"
17 #include "base/strings/string_piece.h" 17 #include "base/strings/string_piece.h"
18 #include "base/time/time.h" 18 #include "base/time/time.h"
19 #include "dbus/dbus_export.h" 19 #include "dbus/dbus_export.h"
20 #include "dbus/object_path.h" 20 #include "dbus/object_path.h"
21 21
22 namespace dbus { 22 namespace dbus {
23 23
24 class Bus; 24 class Bus;
25 class ErrorResponse; 25 class ErrorResponse;
26 class MethodCall; 26 class MethodCall;
27 class Response; 27 class Response;
28 class ScopedDBusError;
28 class Signal; 29 class Signal;
29 30
30 // ObjectProxy is used to communicate with remote objects, mainly for 31 // ObjectProxy is used to communicate with remote objects, mainly for
31 // calling methods of these objects. 32 // calling methods of these objects.
32 // 33 //
33 // ObjectProxy is a ref counted object, to ensure that |this| of the 34 // ObjectProxy is a ref counted object, to ensure that |this| of the
34 // object is is alive when callbacks referencing |this| are called; the 35 // object is alive when callbacks referencing |this| are called; the
35 // bus always holds at least one of those references so object proxies 36 // bus always holds at least one of those references so object proxies
36 // always last as long as the bus that created them. 37 // always last as long as the bus that created them.
37 class CHROME_DBUS_EXPORT ObjectProxy 38 class CHROME_DBUS_EXPORT ObjectProxy
38 : public base::RefCountedThreadSafe<ObjectProxy> { 39 : public base::RefCountedThreadSafe<ObjectProxy> {
39 public: 40 public:
40 // Client code should use Bus::GetObjectProxy() or 41 // Client code should use Bus::GetObjectProxy() or
41 // Bus::GetObjectProxyWithOptions() instead of this constructor. 42 // Bus::GetObjectProxyWithOptions() instead of this constructor.
42 ObjectProxy(Bus* bus, 43 ObjectProxy(Bus* bus,
43 const std::string& service_name, 44 const std::string& service_name,
44 const ObjectPath& object_path, 45 const ObjectPath& object_path,
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 85
85 // Called when the object proxy is connected to the signal. 86 // Called when the object proxy is connected to the signal.
86 // Parameters: 87 // Parameters:
87 // - the interface name. 88 // - the interface name.
88 // - the signal name. 89 // - the signal name.
89 // - whether it was successful or not. 90 // - whether it was successful or not.
90 typedef base::Callback<void (const std::string&, const std::string&, bool)> 91 typedef base::Callback<void (const std::string&, const std::string&, bool)>
91 OnConnectedCallback; 92 OnConnectedCallback;
92 93
93 // Calls the method of the remote object and blocks until the response 94 // Calls the method of the remote object and blocks until the response
95 // is returned. Returns NULL on error with the error details specified
96 // in the |error| object.
97 //
98 // BLOCKING CALL.
99 virtual scoped_ptr<Response> CallMethodAndBlockWithErrorDetails(
100 MethodCall* method_call,
101 int timeout_ms,
102 ScopedDBusError* error);
103
104 // Calls the method of the remote object and blocks until the response
94 // is returned. Returns NULL on error. 105 // is returned. Returns NULL on error.
95 // 106 //
96 // BLOCKING CALL. 107 // BLOCKING CALL.
97 virtual scoped_ptr<Response> CallMethodAndBlock(MethodCall* method_call, 108 virtual scoped_ptr<Response> CallMethodAndBlock(MethodCall* method_call,
98 int timeout_ms); 109 int timeout_ms);
99 110
100 // Requests to call the method of the remote object. 111 // Requests to call the method of the remote object.
101 // 112 //
102 // |callback| will be called in the origin thread, once the method call 113 // |callback| will be called in the origin thread, once the method call
103 // is complete. As it's called in the origin thread, |callback| can 114 // is complete. As it's called in the origin thread, |callback| can
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after
298 NameOwnerChangedCallback name_owner_changed_callback_; 309 NameOwnerChangedCallback name_owner_changed_callback_;
299 310
300 // Called when the service becomes available. 311 // Called when the service becomes available.
301 std::vector<WaitForServiceToBeAvailableCallback> 312 std::vector<WaitForServiceToBeAvailableCallback>
302 wait_for_service_to_be_available_callbacks_; 313 wait_for_service_to_be_available_callbacks_;
303 314
304 std::set<std::string> match_rules_; 315 std::set<std::string> match_rules_;
305 316
306 const bool ignore_service_unknown_errors_; 317 const bool ignore_service_unknown_errors_;
307 318
308 // Known name owner of the well-known bus name represnted by |service_name_|. 319 // Known name owner of the well-known bus name represented by |service_name_|.
309 std::string service_name_owner_; 320 std::string service_name_owner_;
310 321
311 DISALLOW_COPY_AND_ASSIGN(ObjectProxy); 322 DISALLOW_COPY_AND_ASSIGN(ObjectProxy);
312 }; 323 };
313 324
314 } // namespace dbus 325 } // namespace dbus
315 326
316 #endif // DBUS_OBJECT_PROXY_H_ 327 #endif // DBUS_OBJECT_PROXY_H_
OLDNEW
« no previous file with comments | « dbus/mock_unittest.cc ('k') | dbus/object_proxy.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698