| // Copyright (c) 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 "ppapi/cpp/private/pass_file_handle.h" |
| |
| #ifdef _WIN32 |
| # include <windows.h> |
| #else |
| # include <unistd.h> |
| #endif |
| |
| namespace pp { |
| |
| PassFileHandle::PassFileHandle() |
| : handle_(PP_kInvalidFileHandle) { |
| } |
| |
| PassFileHandle::PassFileHandle(PP_FileHandle handle) |
| : handle_(handle) { |
| } |
| |
| PassFileHandle::PassFileHandle(PassFileHandle& handle) |
| : handle_(handle.Release()) { |
| } |
| |
| PassFileHandle::~PassFileHandle() { |
| Close(); |
| } |
| |
| PP_FileHandle PassFileHandle::Release() { |
| PP_FileHandle released = handle_; |
| handle_ = PP_kInvalidFileHandle; |
| return released; |
| } |
| |
| void PassFileHandle::Close() { |
| if (handle_ != PP_kInvalidFileHandle) { |
| #ifdef _WIN32 |
| CloseHandle(handle_); |
| #else |
| close(handle_); |
| #endif |
| handle_ = PP_kInvalidFileHandle; |
| } |
| } |
| |
| } // namespace pp |