1cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
2cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// found in the LICENSE file.
4cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
5cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "ipc/ipc_channel.h"
6cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
7cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)namespace IPC {
8cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
9cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// static
10cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)scoped_ptr<Channel> Channel::CreateClient(
11cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    const IPC::ChannelHandle &channel_handle, Listener* listener) {
1246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  return Channel::Create(channel_handle, Channel::MODE_CLIENT, listener);
13cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}
14cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
15cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// static
16cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)scoped_ptr<Channel> Channel::CreateNamedServer(
17cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    const IPC::ChannelHandle &channel_handle, Listener* listener) {
1846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  return Channel::Create(channel_handle, Channel::MODE_NAMED_SERVER, listener);
19cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}
20cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
21cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// static
22cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)scoped_ptr<Channel> Channel::CreateNamedClient(
23cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    const IPC::ChannelHandle &channel_handle, Listener* listener) {
2446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  return Channel::Create(channel_handle, Channel::MODE_NAMED_CLIENT, listener);
25cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}
26cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
27cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#if defined(OS_POSIX)
28cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// static
29cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)scoped_ptr<Channel> Channel::CreateOpenNamedServer(
30cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    const IPC::ChannelHandle &channel_handle, Listener* listener) {
3146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  return Channel::Create(channel_handle,
3246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)                         Channel::MODE_OPEN_NAMED_SERVER,
3346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)                         listener);
34cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}
35cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#endif
36cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
37cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// static
38cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)scoped_ptr<Channel> Channel::CreateServer(
39cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    const IPC::ChannelHandle &channel_handle, Listener* listener) {
4046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  return Channel::Create(channel_handle, Channel::MODE_SERVER, listener);
41cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}
42cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
4346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)Channel::~Channel() {
4446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)}
45cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
46cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}  // namespace IPC
47cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
48