Add IPC::ChannelProxy::Create() and IPC::SyncChannel::Create()
This change replaces constructors with Create() methods of
ChannelProxy and SyncChannel. This open the possibility to introduce
polymorphism to these classes.
This is a revision of r274310 (https://codereview.chromium.org/301973003/)
in which I added bunch of Create*() method variants.
The chagne was reverted. This change no longer does it and just keeps
using Channel::Mode to specify the channel type.
TEST=none
BUG=377980
[email protected],[email protected]
Review URL: https://codereview.chromium.org/310853003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@275140 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/ipc/ipc_sync_channel_unittest.cc b/ipc/ipc_sync_channel_unittest.cc
index ca8d5d7..817f17e 100644
--- a/ipc/ipc_sync_channel_unittest.cc
+++ b/ipc/ipc_sync_channel_unittest.cc
@@ -151,12 +151,10 @@
}
virtual SyncChannel* CreateChannel() {
- return new SyncChannel(channel_name_,
- mode_,
- this,
- ipc_thread_.message_loop_proxy().get(),
- true,
- &shutdown_event_);
+ scoped_ptr<SyncChannel> channel = SyncChannel::Create(
+ channel_name_, mode_, this, ipc_thread_.message_loop_proxy().get(),
+ true, &shutdown_event_);
+ return channel.release();
}
base::Thread* ListenerThread() {
@@ -324,9 +322,11 @@
}
virtual SyncChannel* CreateChannel() OVERRIDE {
- SyncChannel* channel = new SyncChannel(
- this, ipc_thread().message_loop_proxy().get(), shutdown_event());
- channel->Init(channel_name(), mode(), create_pipe_now_);
+ SyncChannel* channel =
+ SyncChannel::Create(channel_name(), mode(), this,
+ ipc_thread().message_loop_proxy().get(),
+ create_pipe_now_,
+ shutdown_event()).release();
return channel;
}
@@ -345,9 +345,11 @@
}
virtual SyncChannel* CreateChannel() OVERRIDE {
- SyncChannel* channel = new SyncChannel(
- this, ipc_thread().message_loop_proxy().get(), shutdown_event());
- channel->Init(channel_name(), mode(), create_pipe_now_);
+ SyncChannel* channel =
+ SyncChannel::Create(channel_name(), mode(), this,
+ ipc_thread().message_loop_proxy().get(),
+ create_pipe_now_,
+ shutdown_event()).release();
return channel;
}
@@ -1135,13 +1137,13 @@
else
LOG(ERROR) << "Send failed to dispatch incoming message on same channel";
- non_restricted_channel_.reset(
- new SyncChannel("non_restricted_channel",
- Channel::MODE_CLIENT,
- this,
- ipc_thread().message_loop_proxy().get(),
- true,
- shutdown_event()));
+ non_restricted_channel_ =
+ SyncChannel::Create("non_restricted_channel",
+ IPC::Channel::MODE_CLIENT,
+ this,
+ ipc_thread().message_loop_proxy().get(),
+ true,
+ shutdown_event());
server_->ListenerThread()->message_loop()->PostTask(
FROM_HERE, base::Bind(&RestrictedDispatchServer::OnDoPing, server_, 2));
@@ -1526,13 +1528,13 @@
if (is_first())
event1_->Signal();
event2_->Wait();
- other_channel_.reset(
- new SyncChannel(other_channel_name_,
- Channel::MODE_CLIENT,
- this,
- ipc_thread().message_loop_proxy().get(),
- true,
- shutdown_event()));
+ other_channel_ =
+ SyncChannel::Create(other_channel_name_,
+ IPC::Channel::MODE_CLIENT,
+ this,
+ ipc_thread().message_loop_proxy().get(),
+ true,
+ shutdown_event());
other_channel_->SetRestrictDispatchChannelGroup(group_);
if (!is_first()) {
event1_->Signal();
@@ -1606,13 +1608,13 @@
server_ready_(server_ready) { }
virtual void Run() OVERRIDE {
- server2_channel_.reset(
- new SyncChannel("reentrant_reply2",
- Channel::MODE_CLIENT,
- this,
- ipc_thread().message_loop_proxy().get(),
- true,
- shutdown_event()));
+ server2_channel_ =
+ SyncChannel::Create("reentrant_reply2",
+ IPC::Channel::MODE_CLIENT,
+ this,
+ ipc_thread().message_loop_proxy().get(),
+ true,
+ shutdown_event());
server_ready_->Signal();
Message* msg = new SyncChannelTestMsg_Reentrant1();
server2_channel_->Send(msg);