// 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