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