// Copyright 2013 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 "mojo/system/platform_channel.h" #include "base/logging.h" namespace mojo { namespace system { PlatformChannel::~PlatformChannel() { handle_.CloseIfNecessary(); } PlatformChannelHandle PlatformChannel::PassHandle() { DCHECK(is_valid()); PlatformChannelHandle rv = handle_; handle_ = PlatformChannelHandle(); return rv; } PlatformChannel::PlatformChannel() { } PlatformServerChannel::PlatformServerChannel(const std::string& name) : name_(name) { DCHECK(!name_.empty()); } // Static factory method. // static scoped_ptr<PlatformClientChannel> PlatformClientChannel::CreateFromHandle( const PlatformChannelHandle& handle) { DCHECK(handle.is_valid()); scoped_ptr<PlatformClientChannel> rv(new PlatformClientChannel()); *rv->mutable_handle() = handle; return rv.Pass(); } } // namespace system } // namespace mojo