| /* | |
| * Copyright 2014 The WebRTC Project Authors. All rights reserved. | |
| * | |
| * Use of this source code is governed by a BSD-style license | |
| * that can be found in the LICENSE file in the root of the source | |
| * tree. An additional intellectual property rights grant can be found | |
| * in the file PATENTS. All contributing project authors may | |
| * be found in the AUTHORS file in the root of the source tree. | |
| */ | |
| #ifndef RTC_BASE_PLATFORM_FILE_H_ | |
| #define RTC_BASE_PLATFORM_FILE_H_ | |
| #include <stdio.h> | |
| #include <string> | |
| #if defined(WEBRTC_WIN) | |
| #include <windows.h> | |
| #endif | |
| namespace rtc { | |
| #if defined(WEBRTC_WIN) | |
| typedef HANDLE PlatformFile; | |
| #elif defined(WEBRTC_POSIX) | |
| typedef int PlatformFile; | |
| #else | |
| #error Unsupported platform | |
| #endif | |
| extern const PlatformFile kInvalidPlatformFileValue; | |
| // Associates a standard FILE stream with an existing PlatformFile. | |
| // Note that after this function has returned a valid FILE stream, | |
| // the PlatformFile should no longer be used. | |
| FILE* FdopenPlatformFileForWriting(PlatformFile file); | |
| // Associates a standard FILE stream with an existing PlatformFile. | |
| // Note that after this function has returned a valid FILE stream, | |
| // the PlatformFile should no longer be used. | |
| FILE* FdopenPlatformFile(PlatformFile file, const char* modes); | |
| // Closes a PlatformFile. Returns true on success, false on failure. | |
| // Don't use ClosePlatformFile to close a file opened with FdopenPlatformFile. | |
| // Use fclose instead. | |
| bool ClosePlatformFile(PlatformFile file); | |
| // Removes a file in the filesystem. | |
| bool RemoveFile(const std::string& path); | |
| // Opens a file for reading and writing. You might want to use base/file.h | |
| // instead. | |
| PlatformFile OpenPlatformFile(const std::string& path); | |
| // Opens a file for reading only. You might want to use base/file.h | |
| // instead. | |
| PlatformFile OpenPlatformFileReadOnly(const std::string& path); | |
| // Creates a new file for reading and writing. If the file already exists it | |
| // will be overwritten. You might want to use base/file.h instead. | |
| PlatformFile CreatePlatformFile(const std::string& path); | |
| } // namespace rtc | |
| #endif // RTC_BASE_PLATFORM_FILE_H_ |