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); |