Home | History | Annotate | Download | only in ipc
      1 // Copyright 2014 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "ipc/ipc_channel_factory.h"
      6 
      7 namespace IPC {
      8 
      9 namespace {
     10 
     11 class PlatformChannelFactory : public ChannelFactory {
     12  public:
     13   PlatformChannelFactory(ChannelHandle handle,
     14                          Channel::Mode mode)
     15       : handle_(handle), mode_(mode) {
     16   }
     17 
     18   virtual std::string GetName() const OVERRIDE {
     19     return handle_.name;
     20   }
     21 
     22   virtual scoped_ptr<Channel> BuildChannel(
     23       Listener* listener) OVERRIDE {
     24     return Channel::Create(handle_, mode_, listener);
     25   }
     26 
     27  private:
     28   ChannelHandle handle_;
     29   Channel::Mode mode_;
     30 
     31   DISALLOW_COPY_AND_ASSIGN(PlatformChannelFactory);
     32 };
     33 
     34 } // namespace
     35 
     36 // static
     37 scoped_ptr<ChannelFactory> ChannelFactory::Create(
     38     const ChannelHandle& handle, Channel::Mode mode) {
     39   return scoped_ptr<ChannelFactory>(new PlatformChannelFactory(handle, mode));
     40 }
     41 
     42 }  // namespace IPC
     43