Chromium Code Reviews| Index: ipc/mojo/ipc_channel_mojo_readers.h |
| diff --git a/ipc/mojo/ipc_channel_mojo_readers.h b/ipc/mojo/ipc_channel_mojo_readers.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..91db4fc0254e406c5c86f5a637e026be04b0f4f6 |
| --- /dev/null |
| +++ b/ipc/mojo/ipc_channel_mojo_readers.h |
| @@ -0,0 +1,89 @@ |
| +// Copyright 2014 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#ifndef IPC_IPC_CHANNEL_MOJO_READERS_H_ |
|
yzshen1
2014/09/09 23:52:40
MOJO_, please.
Hajime Morrita
2014/09/10 17:16:35
Done.
|
| +#define IPC_IPC_CHANNEL_MOJO_READERS_H_ |
| + |
| +#include <vector> |
| + |
| +#include "base/memory/scoped_ptr.h" |
| +#include "base/memory/scoped_vector.h" |
| +#include "base/memory/weak_ptr.h" |
| +#include "ipc/ipc_channel.h" |
| +#include "ipc/ipc_channel_factory.h" |
| +#include "ipc/ipc_export.h" |
| +#include "ipc/mojo/ipc_message_pipe_reader.h" |
| +#include "mojo/public/cpp/system/core.h" |
| + |
| +namespace mojo { |
| +namespace embedder { |
| +struct ChannelInfo; |
| +} |
| +} |
| + |
| +namespace IPC { |
| + |
| +class ChannelMojo; |
| + |
| +namespace internal { |
| + |
| +// A MessagePipeReader implemenation for IPC::Message communication. |
| +class MessageReader : public MessagePipeReader { |
| + public: |
| + MessageReader(mojo::ScopedMessagePipeHandle pipe, ChannelMojo* owner); |
| + |
| + bool Send(scoped_ptr<Message> message); |
| + virtual void OnMessageReceived() OVERRIDE; |
| + virtual void OnPipeClosed() OVERRIDE; |
| + virtual void OnPipeError(MojoResult error) OVERRIDE; |
| + |
| + private: |
| + ChannelMojo* owner_; |
|
yzshen1
2014/09/09 23:52:40
DISALLOW_COPY_AND_ASSIGN?
(here and below)
Hajime Morrita
2014/09/10 17:16:34
Done.
Hajime Morrita
2014/09/10 17:16:35
Done.
|
| +}; |
| + |
| +// MessagePipeReader implementation for control messages. |
| +// Actual message handling is implemented by sublcasses. |
| +class ControlReader : public MessagePipeReader { |
| + public: |
| + ControlReader(mojo::ScopedMessagePipeHandle pipe, ChannelMojo* owner); |
| + |
| + virtual bool Connect(); |
|
yzshen1
2014/09/09 23:52:40
Please have an empty line below it.
And add commen
Hajime Morrita
2014/09/10 17:16:35
Done.
|
| + virtual void OnPipeClosed() OVERRIDE; |
|
yzshen1
2014/09/09 23:52:40
It seems nice to add a comment "MessagePipeReader
Hajime Morrita
2014/09/10 17:16:34
Done.
|
| + virtual void OnPipeError(MojoResult error) OVERRIDE; |
| + |
| + protected: |
| + ChannelMojo* owner_; |
| +}; |
| + |
| +// ControlReader for server-side ChannelMojo. |
| +class ServerControlReader : public ControlReader { |
| + public: |
| + ServerControlReader(mojo::ScopedMessagePipeHandle pipe, ChannelMojo* owner); |
| + virtual ~ServerControlReader(); |
| + |
| + virtual bool Connect() OVERRIDE; |
|
yzshen1
2014/09/09 23:52:40
It seems nice to add a comment "ControlReader over
Hajime Morrita
2014/09/10 17:16:34
Done.
|
| + virtual void OnMessageReceived() OVERRIDE; |
| + |
| + private: |
| + MojoResult SendHelloRequest(); |
| + MojoResult RespondHelloResponse(); |
| + |
| + mojo::ScopedMessagePipeHandle message_pipe_; |
| +}; |
| + |
| +// ControlReader for client-side ChannelMojo. |
| +class ClientControlReader : public ControlReader { |
| + public: |
| + ClientControlReader(mojo::ScopedMessagePipeHandle pipe, ChannelMojo* owner); |
| + |
| + virtual void OnMessageReceived() OVERRIDE; |
| + |
| + private: |
| + MojoResult RespondHelloRequest(MojoHandle message_channel); |
| +}; |
| + |
| +} // namespace internal |
| +} // namespace IPC |
| + |
| +#endif // IPC_IPC_CHANNEL_MOJO_READERS_H_ |