15c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// Copyright 2014 The Chromium Authors. All rights reserved. 25c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// Use of this source code is governed by a BSD-style license that can be 35c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// found in the LICENSE file. 45c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 55c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#include "ipc/ipc_channel_factory.h" 65c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 75c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liunamespace IPC { 85c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccinamespace { 105c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 115c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liuclass PlatformChannelFactory : public ChannelFactory { 125c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu public: 135c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu PlatformChannelFactory(ChannelHandle handle, 145c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu Channel::Mode mode) 151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci : handle_(handle), mode_(mode) { 161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual std::string GetName() const OVERRIDE { 191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return handle_.name; 201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual scoped_ptr<Channel> BuildChannel( 231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci Listener* listener) OVERRIDE { 241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return Channel::Create(handle_, mode_, listener); 251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci private: 281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci ChannelHandle handle_; 291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci Channel::Mode mode_; 301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci DISALLOW_COPY_AND_ASSIGN(PlatformChannelFactory); 321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}; 331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} // namespace 351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// static 371320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciscoped_ptr<ChannelFactory> ChannelFactory::Create( 381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci const ChannelHandle& handle, Channel::Mode mode) { 391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return scoped_ptr<ChannelFactory>(new PlatformChannelFactory(handle, mode)); 401320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 411320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 421320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} // namespace IPC 431320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci