| Index: ipc/mojo/async_handle_waiter.h
|
| diff --git a/ipc/mojo/async_handle_waiter.h b/ipc/mojo/async_handle_waiter.h
|
| index 55acb3eb8e2ecdec369dd56420a678b2da2be810..9b0b4434024954c67398a7bfd9ac0a4aa607917f 100644
|
| --- a/ipc/mojo/async_handle_waiter.h
|
| +++ b/ipc/mojo/async_handle_waiter.h
|
| @@ -27,16 +27,27 @@ class IPC_MOJO_EXPORT AsyncHandleWaiter {
|
| public:
|
| class Context;
|
|
|
| - explicit AsyncHandleWaiter(base::Callback<void(MojoResult)> callback);
|
| + class Delegate {
|
| + public:
|
| + virtual void PipeIsReady(MojoResult result) = 0;
|
| + virtual void MessageWasArrived(const void* bytes, uint32_t num_bytes) = 0;
|
| + };
|
| +
|
| + explicit AsyncHandleWaiter(Delegate* delegate);
|
| ~AsyncHandleWaiter();
|
|
|
| + void SetMessageCallback(MojoHandle handle);
|
| + void ClearMessageCallback(MojoHandle handle);
|
| MojoResult Wait(MojoHandle handle, MojoHandleSignals signals);
|
|
|
| private:
|
| void InvokeCallback(MojoResult result);
|
| + void InvokeMessageCallback(const void* bytes, uint32_t num_bytes);
|
|
|
| scoped_refptr<Context> context_;
|
| - base::Callback<void(MojoResult)> callback_;
|
| + Delegate* delegate_;
|
| + base::Callback<void(MojoResult)> context_callback_;
|
| + base::Callback<bool(const void*, uint32_t)> context_message_callback_;
|
| base::WeakPtrFactory<AsyncHandleWaiter> weak_factory_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(AsyncHandleWaiter);
|
|
|