Index: ipc/mojo/ipc_channel_mojo.h |
diff --git a/ipc/mojo/ipc_channel_mojo.h b/ipc/mojo/ipc_channel_mojo.h |
index 2f98b170fe03e0175cf6434f6208915cc1c22ee6..f1fbb25b724348a49614f1e1b4337115348d7891 100644 |
--- a/ipc/mojo/ipc_channel_mojo.h |
+++ b/ipc/mojo/ipc_channel_mojo.h |
@@ -51,6 +51,12 @@ class IPC_MOJO_EXPORT ChannelMojo |
public MojoBootstrap::Delegate, |
public NON_EXPORTED_BASE(internal::MessagePipeReader::Delegate) { |
public: |
+ using CreateMessagingPipeCallback = |
+ base::Callback<void(mojo::ScopedMessagePipeHandle)>; |
+ using CreateMessagingPipeOnIOThreadCallback = |
+ base::Callback<void(mojo::ScopedMessagePipeHandle, |
+ mojo::embedder::ChannelInfo*)>; |
+ |
class Delegate { |
public: |
virtual ~Delegate() {} |
@@ -125,8 +131,8 @@ class IPC_MOJO_EXPORT ChannelMojo |
Mode mode, |
Listener* listener); |
- mojo::ScopedMessagePipeHandle CreateMessagingPipe( |
- mojo::embedder::ScopedPlatformHandle handle); |
+ void CreateMessagingPipe(mojo::embedder::ScopedPlatformHandle handle, |
+ const CreateMessagingPipeCallback& callback); |
void InitMessageReader(mojo::ScopedMessagePipeHandle pipe, int32_t peer_pid); |
Listener* listener() const { return listener_; } |
@@ -134,7 +140,12 @@ class IPC_MOJO_EXPORT ChannelMojo |
private: |
struct ChannelInfoDeleter { |
+ explicit ChannelInfoDeleter(scoped_refptr<base::TaskRunner> io_runer); |
jam
2015/05/11 15:53:25
nit: io_runner
Ken Rockot(use gerrit already)
2015/05/11 16:11:53
Done.
|
+ ~ChannelInfoDeleter(); |
+ |
void operator()(mojo::embedder::ChannelInfo* ptr) const; |
+ |
+ scoped_refptr<base::TaskRunner> io_runner; |
}; |
// ChannelMojo needs to kill its MessagePipeReader in delayed manner |
@@ -144,6 +155,14 @@ class IPC_MOJO_EXPORT ChannelMojo |
void InitOnIOThread(ChannelMojo::Delegate* delegate); |
+ static void CreateMessagingPipeOnIOThread( |
+ mojo::embedder::ScopedPlatformHandle handle, |
+ scoped_refptr<base::TaskRunner> callback_runner, |
+ const CreateMessagingPipeOnIOThreadCallback& callback); |
+ void OnMessagingPipeCreated(const CreateMessagingPipeCallback& callback, |
+ mojo::ScopedMessagePipeHandle handle, |
+ mojo::embedder::ChannelInfo* channel_info); |
+ |
scoped_ptr<MojoBootstrap> bootstrap_; |
base::WeakPtr<Delegate> delegate_; |
Mode mode_; |