diff options
author | morrita@chromium.org <morrita@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-08-04 23:44:17 +0000 |
---|---|---|
committer | morrita@chromium.org <morrita@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-08-04 23:44:17 +0000 |
commit | 6486088e8bb6dc810157503edfa3c75a58e9e49d (patch) | |
tree | eda9fabacac5b6796c142ec4cc402b47bdf97dd8 /ipc/ipc_channel_factory.cc | |
parent | d93dbd1248f4e556c9c1c1005f5d051e3fe1efc8 (diff) | |
download | chromium_src-6486088e8bb6dc810157503edfa3c75a58e9e49d.zip chromium_src-6486088e8bb6dc810157503edfa3c75a58e9e49d.tar.gz chromium_src-6486088e8bb6dc810157503edfa3c75a58e9e49d.tar.bz2 |
Introduce ChannelMojo
This CL introduces ChannelMojo IPC::Channel implementation
and optionally applies it for renderer-browser IPC channel.
Current stability is like 5-seconds browser and There are rough edges.
It often closes the channel so needs to be more robust.
Even though the level of stability, having it in the tree will helps
team to try and improve it.
BUG=377980
R=darin@chromium.org,jam@chromium.org,viettrungluu@chromium.org
TEST=ipc_channel_mojo_unittest.cc
Review URL: https://codereview.chromium.org/382333002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@287402 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ipc/ipc_channel_factory.cc')
-rw-r--r-- | ipc/ipc_channel_factory.cc | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/ipc/ipc_channel_factory.cc b/ipc/ipc_channel_factory.cc new file mode 100644 index 0000000..4cb1790 --- /dev/null +++ b/ipc/ipc_channel_factory.cc @@ -0,0 +1,42 @@ +// 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. + +#include "ipc/ipc_channel_factory.h" + +namespace IPC { + +namespace { + +class PlatformChannelFactory : public ChannelFactory { + public: + PlatformChannelFactory(ChannelHandle handle, + Channel::Mode mode) + : handle_(handle), mode_(mode) { + } + + virtual std::string GetName() const OVERRIDE { + return handle_.name; + } + + virtual scoped_ptr<Channel> BuildChannel( + Listener* listener) OVERRIDE { + return Channel::Create(handle_, mode_, listener); + } + + private: + ChannelHandle handle_; + Channel::Mode mode_; + + DISALLOW_COPY_AND_ASSIGN(PlatformChannelFactory); +}; + +} // namespace + +// static +scoped_ptr<ChannelFactory> ChannelFactory::Create( + const ChannelHandle& handle, Channel::Mode mode) { + return scoped_ptr<ChannelFactory>(new PlatformChannelFactory(handle, mode)); +} + +} // namespace IPC |