| Index: dbus/exported_object.h
|
| diff --git a/dbus/exported_object.h b/dbus/exported_object.h
|
| index bc67bcdb6e5e3913f5865c579e632c0dfc7f44b6..7ac2f88445dec5695ee14c9e2eed5f5b3400edcf 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,
|
|
|