Home | History | Annotate | Download | only in ipc
      1 // Copyright (c) 2015 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_platform_file_attachment_posix.h"
      6 
      7 #include <utility>
      8 
      9 namespace IPC {
     10 namespace internal {
     11 
     12 PlatformFileAttachment::PlatformFileAttachment(base::PlatformFile file)
     13     : file_(file) {
     14 }
     15 
     16 PlatformFileAttachment::PlatformFileAttachment(base::ScopedFD file)
     17     : file_(file.get()), owning_(std::move(file)) {}
     18 
     19 PlatformFileAttachment::~PlatformFileAttachment() {
     20 }
     21 
     22 MessageAttachment::Type PlatformFileAttachment::GetType() const {
     23   return Type::PLATFORM_FILE;
     24 }
     25 
     26 base::PlatformFile PlatformFileAttachment::TakePlatformFile() {
     27   ignore_result(owning_.release());
     28   return file_;
     29 }
     30 
     31 base::PlatformFile GetPlatformFile(
     32     scoped_refptr<MessageAttachment> attachment) {
     33   DCHECK_EQ(attachment->GetType(), MessageAttachment::Type::PLATFORM_FILE);
     34   return static_cast<PlatformFileAttachment*>(attachment.get())->file();
     35 }
     36 
     37 }  // namespace internal
     38 }  // namespace IPC
     39