summaryrefslogtreecommitdiffstats
path: root/dbus/exported_object.h
diff options
context:
space:
mode:
authorvlaviano@chromium.org <vlaviano@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-24 02:23:33 +0000
committervlaviano@chromium.org <vlaviano@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-24 02:23:33 +0000
commitf34dabdeb6ff9e25515bb68bac78af7f49ce6f3a (patch)
treefc6a84b0a3e496a0a7f52b2ad1559bd50f54908b /dbus/exported_object.h
parent89539dec77e9c1625d6616c4060b474e0ebd46bd (diff)
downloadchromium_src-f34dabdeb6ff9e25515bb68bac78af7f49ce6f3a.zip
chromium_src-f34dabdeb6ff9e25515bb68bac78af7f49ce6f3a.tar.gz
chromium_src-f34dabdeb6ff9e25515bb68bac78af7f49ce6f3a.tar.bz2
chrome: dbus: support asynchronous method replies
BUG=chromium-os:23241 TEST=Unit tests and manual testing on device. Change-Id: I4d665897687030f4ab2379e4f6ddb9b3ebe02af4 Review URL: http://codereview.chromium.org/8637002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@111479 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'dbus/exported_object.h')
-rw-r--r--dbus/exported_object.h19
1 files changed, 16 insertions, 3 deletions
diff --git a/dbus/exported_object.h b/dbus/exported_object.h
index bc67bcd..7ac2f88 100644
--- a/dbus/exported_object.h
+++ b/dbus/exported_object.h
@@ -38,9 +38,15 @@ class ExportedObject : public base::RefCountedThreadSafe<ExportedObject> {
const std::string& service_name,
const std::string& object_path);
+ // Called to send a response from an exported method. Response* is the
+ // response message. Callers should pass a NULL Response* in the event
+ // of an error that prevents the sending of a response.
+ typedef base::Callback<void (Response*)> ResponseSender;
+
// Called when an exported method is called. MethodCall* is the request
- // message.
- typedef base::Callback<Response* (MethodCall*)> MethodCallCallback;
+ // message. ResponseSender is the callback that should be used to send a
+ // response.
+ typedef base::Callback<void (MethodCall*, ResponseSender)> MethodCallCallback;
// Called when method exporting is done.
// Parameters:
@@ -124,7 +130,14 @@ class ExportedObject : public base::RefCountedThreadSafe<ExportedObject> {
MethodCall* method_call,
base::TimeTicks start_time);
- // Called on completion of the method run from RunMethod().
+ // Callback invoked by service provider to send a response to a method call.
+ // Can be called immediately from a MethodCallCallback to implement a
+ // synchronous service or called later to implement an asynchronous service.
+ void SendResponse(base::TimeTicks start_time,
+ MethodCall* method_call,
+ Response* response);
+
+ // Called on completion of the method run from SendResponse().
// Takes ownership of |method_call| and |response|.
void OnMethodCompleted(MethodCall* method_call,
Response* response,