diff options
author | tfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-24 21:55:45 +0000 |
---|---|---|
committer | tfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-24 21:55:45 +0000 |
commit | c3088cbb5cbd5c91b6c5602750ec327ff7963862 (patch) | |
tree | 4aac06d2b2541d9ef2744f719478f6c2c88b00c1 /base/file_util_win.cc | |
parent | 47e870bf26f0c01dafe611ec03c0139c735063df (diff) | |
download | chromium_src-c3088cbb5cbd5c91b6c5602750ec327ff7963862.zip chromium_src-c3088cbb5cbd5c91b6c5602750ec327ff7963862.tar.gz chromium_src-c3088cbb5cbd5c91b6c5602750ec327ff7963862.tar.bz2 |
base: Move MemoryMappedFile out of file_util.h and into its own header file.
BUG=175002
TEST=base_unittests
R=brettw@chromium.org
TBR=erikwright@chromium.org,tommi@chromium.org,fischman@chromium.org,ben@chromium.org
Review URL: https://chromiumcodereview.appspot.com/12321062
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@184356 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/file_util_win.cc')
-rw-r--r-- | base/file_util_win.cc | 76 |
1 files changed, 0 insertions, 76 deletions
diff --git a/base/file_util_win.cc b/base/file_util_win.cc index 679b108..f7897a0 100644 --- a/base/file_util_win.cc +++ b/base/file_util_win.cc @@ -755,82 +755,6 @@ FilePath FileEnumerator::Next() { return FilePath(); } -/////////////////////////////////////////////// -// MemoryMappedFile - -MemoryMappedFile::MemoryMappedFile() - : file_(INVALID_HANDLE_VALUE), - file_mapping_(INVALID_HANDLE_VALUE), - data_(NULL), - length_(INVALID_FILE_SIZE) { -} - -bool MemoryMappedFile::InitializeAsImageSection(const FilePath& file_name) { - if (IsValid()) - return false; - file_ = base::CreatePlatformFile( - file_name, base::PLATFORM_FILE_OPEN | base::PLATFORM_FILE_READ, - NULL, NULL); - - if (file_ == base::kInvalidPlatformFileValue) { - DLOG(ERROR) << "Couldn't open " << file_name.value(); - return false; - } - - if (!MapFileToMemoryInternalEx(SEC_IMAGE)) { - CloseHandles(); - return false; - } - - return true; -} - -bool MemoryMappedFile::MapFileToMemoryInternal() { - return MapFileToMemoryInternalEx(0); -} - -bool MemoryMappedFile::MapFileToMemoryInternalEx(int flags) { - base::ThreadRestrictions::AssertIOAllowed(); - - if (file_ == INVALID_HANDLE_VALUE) - return false; - - length_ = ::GetFileSize(file_, NULL); - if (length_ == INVALID_FILE_SIZE) - return false; - - file_mapping_ = ::CreateFileMapping(file_, NULL, PAGE_READONLY | flags, - 0, 0, NULL); - if (!file_mapping_) { - // According to msdn, system error codes are only reserved up to 15999. - // http://msdn.microsoft.com/en-us/library/ms681381(v=VS.85).aspx. - UMA_HISTOGRAM_ENUMERATION("MemoryMappedFile.CreateFileMapping", - logging::GetLastSystemErrorCode(), 16000); - return false; - } - - data_ = static_cast<uint8*>( - ::MapViewOfFile(file_mapping_, FILE_MAP_READ, 0, 0, 0)); - if (!data_) { - UMA_HISTOGRAM_ENUMERATION("MemoryMappedFile.MapViewOfFile", - logging::GetLastSystemErrorCode(), 16000); - } - return data_ != NULL; -} - -void MemoryMappedFile::CloseHandles() { - if (data_) - ::UnmapViewOfFile(data_); - if (file_mapping_ != INVALID_HANDLE_VALUE) - ::CloseHandle(file_mapping_); - if (file_ != INVALID_HANDLE_VALUE) - ::CloseHandle(file_); - - data_ = NULL; - file_mapping_ = file_ = INVALID_HANDLE_VALUE; - length_ = INVALID_FILE_SIZE; -} - bool HasFileBeenModifiedSince(const FileEnumerator::FindInfo& find_info, const base::Time& cutoff_time) { base::ThreadRestrictions::AssertIOAllowed(); |