// 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, AttachmentBroker* broker) : handle_(handle), mode_(mode), broker_(broker) {} std::string GetName() const override { return handle_.name; } scoped_ptr BuildChannel(Listener* listener) override { return Channel::Create(handle_, mode_, listener, broker_); } private: ChannelHandle handle_; Channel::Mode mode_; AttachmentBroker* broker_; DISALLOW_COPY_AND_ASSIGN(PlatformChannelFactory); }; } // namespace // static scoped_ptr ChannelFactory::Create(const ChannelHandle& handle, Channel::Mode mode, AttachmentBroker* broker) { return scoped_ptr( new PlatformChannelFactory(handle, mode, broker)); } } // namespace IPC