blob: 7111cfa0bbb4979d7ff3eb67848c94ccc925baf5 [file] [log] [blame]
Hidehiko Abeb268b432018-04-24 01:37:19 +09001// 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
9namespace IPC {
10namespace internal {
11
12PlatformFileAttachment::PlatformFileAttachment(base::PlatformFile file)
13 : file_(file) {
14}
15
16PlatformFileAttachment::PlatformFileAttachment(base::ScopedFD file)
17 : file_(file.get()), owning_(std::move(file)) {}
18
19PlatformFileAttachment::~PlatformFileAttachment() {
20}
21
22MessageAttachment::Type PlatformFileAttachment::GetType() const {
23 return Type::PLATFORM_FILE;
24}
25
26base::PlatformFile PlatformFileAttachment::TakePlatformFile() {
27 ignore_result(owning_.release());
28 return file_;
29}
30
31base::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