Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(283)

Unified Diff: webrtc/base/platform_file.cc

Issue 2347473003: Removing, opening and creating files in platform_file and file (Closed)
Patch Set: Comments Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/base/platform_file.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/base/platform_file.cc
diff --git a/webrtc/base/platform_file.cc b/webrtc/base/platform_file.cc
index d518b74a659232150aae102f4bd35bc036fad330..a41324fcf9cc0a768ade872c06791e66f1f4e281 100644
--- a/webrtc/base/platform_file.cc
+++ b/webrtc/base/platform_file.cc
@@ -13,6 +13,9 @@
#if defined(WEBRTC_WIN)
#include <io.h>
#else
+#include <fcntl.h>
+#include <sys/stat.h>
+#include <sys/types.h>
#include <unistd.h>
#endif
@@ -34,7 +37,23 @@ FILE* FdopenPlatformFileForWriting(PlatformFile file) {
bool ClosePlatformFile(PlatformFile file) {
return CloseHandle(file) != 0;
}
-#else
+
+bool RemoveFile(const std::string& path) {
+ return ::DeleteFile(ToUtf16(path).c_str()) != 0;
+}
+
+PlatformFile OpenPlatformFile(const std::string& path) {
+ return ::CreateFile(ToUtf16(path).c_str(), GENERIC_READ | GENERIC_WRITE, 0,
+ nullptr, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, nullptr);
+}
+
+PlatformFile CreatePlatformFile(const std::string& path) {
+ return ::CreateFile(ToUtf16(path).c_str(), GENERIC_READ | GENERIC_WRITE, 0,
+ nullptr, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, nullptr);
+}
+
+#else // defined(WEBRTC_WIN)
+
const PlatformFile kInvalidPlatformFileValue = -1;
FILE* FdopenPlatformFileForWriting(PlatformFile file) {
@@ -44,6 +63,19 @@ FILE* FdopenPlatformFileForWriting(PlatformFile file) {
bool ClosePlatformFile(PlatformFile file) {
return close(file);
}
+
+bool RemoveFile(const std::string& path) {
+ return ::unlink(path.c_str()) == 0;
+}
+
+PlatformFile OpenPlatformFile(const std::string& path) {
+ return ::open(path.c_str(), O_RDWR);
+}
+
+PlatformFile CreatePlatformFile(const std::string& path) {
+ return ::open(path.c_str(), O_CREAT | O_TRUNC | O_RDWR, S_IRUSR | S_IWUSR);
+}
+
#endif
} // namespace rtc
« no previous file with comments | « webrtc/base/platform_file.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698