Index: base/platform_file_win.cc |
=================================================================== |
--- base/platform_file_win.cc (revision 4227) |
+++ base/platform_file_win.cc (working copy) |
@@ -2,29 +2,31 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#include "net/disk_cache/os_file.h" |
+#include "base/platform_file.h" |
#include "base/logging.h" |
-namespace disk_cache { |
+namespace base { |
-OSFile CreateOSFile(const std::wstring& name, int flags, bool* created) { |
+PlatformFile CreatePlatformFile(const std::wstring& name, |
+ int flags, |
+ bool* created) { |
DWORD disposition = 0; |
- if (flags & OS_FILE_OPEN) |
+ if (flags & PLATFORM_FILE_OPEN) |
disposition = OPEN_EXISTING; |
- if (flags & OS_FILE_CREATE) { |
+ if (flags & PLATFORM_FILE_CREATE) { |
DCHECK(!disposition); |
disposition = CREATE_NEW; |
} |
- if (flags & OS_FILE_OPEN_ALWAYS) { |
+ if (flags & PLATFORM_FILE_OPEN_ALWAYS) { |
DCHECK(!disposition); |
disposition = OPEN_ALWAYS; |
} |
- if (flags & OS_FILE_CREATE_ALWAYS) { |
+ if (flags & PLATFORM_FILE_CREATE_ALWAYS) { |
DCHECK(!disposition); |
disposition = CREATE_ALWAYS; |
} |
@@ -34,18 +36,22 @@ |
return NULL; |
} |
- DWORD access = (flags & OS_FILE_READ) ? GENERIC_READ : 0; |
- if (flags & OS_FILE_WRITE) |
+ DWORD access = (flags & PLATFORM_FILE_READ) ? GENERIC_READ : 0; |
+ if (flags & PLATFORM_FILE_WRITE) |
access |= GENERIC_WRITE; |
- DWORD sharing = (flags & OS_FILE_SHARE_READ) ? FILE_SHARE_READ : 0; |
- if (flags & OS_FILE_SHARE_WRITE) |
- access |= FILE_SHARE_WRITE; |
+ DWORD sharing = (flags & PLATFORM_FILE_EXCLUSIVE_READ) ? 0 : FILE_SHARE_READ; |
+ if (!(flags & PLATFORM_FILE_EXCLUSIVE_WRITE)) |
+ sharing |= FILE_SHARE_WRITE; |
- HANDLE file = CreateFile(name.c_str(), access, sharing, NULL, disposition, 0, |
- NULL); |
+ DWORD create_flags = 0; |
+ if (flags & PLATFORM_FILE_ASYNC) |
+ create_flags |= FILE_FLAG_OVERLAPPED; |
- if ((flags & OS_FILE_OPEN_ALWAYS) && created && |
+ HANDLE file = CreateFile(name.c_str(), access, sharing, NULL, disposition, |
+ create_flags, NULL); |
+ |
+ if ((flags & PLATFORM_FILE_OPEN_ALWAYS) && created && |
INVALID_HANDLE_VALUE != file) { |
*created = (ERROR_ALREADY_EXISTS != GetLastError()); |
} |
Property changes on: base\platform_file_win.cc |
___________________________________________________________________ |
Added: svn:mergeinfo |
Merged /branches/chrome_webkit_merge_branch/net/disk_cache/os_file_win.cc:r69-2775 |