diff options
author | estade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-12-12 22:05:23 +0000 |
---|---|---|
committer | estade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-12-12 22:05:23 +0000 |
commit | cf0d278d5ad746f025a7cf687dcc019b4c09421e (patch) | |
tree | 0b0b4627d132e56a7230ab07a4d98c5064359d5e /base/file_util.cc | |
parent | 620b79cee22f6376851f63989e319157f23d5556 (diff) | |
download | chromium_src-cf0d278d5ad746f025a7cf687dcc019b4c09421e.zip chromium_src-cf0d278d5ad746f025a7cf687dcc019b4c09421e.tar.gz chromium_src-cf0d278d5ad746f025a7cf687dcc019b4c09421e.tar.bz2 |
Implement the memory mapped file class for posix.
Review URL: http://codereview.chromium.org/14073
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@6935 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/file_util.cc')
-rw-r--r-- | base/file_util.cc | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/base/file_util.cc b/base/file_util.cc index 10e08d5..1cf22b7 100644 --- a/base/file_util.cc +++ b/base/file_util.cc @@ -275,6 +275,29 @@ bool CloseFile(FILE* file) { return fclose(file) == 0; } +/////////////////////////////////////////////// +// MemoryMappedFile + +MemoryMappedFile::~MemoryMappedFile() { + CloseHandles(); +} + +bool MemoryMappedFile::Initialize(const FilePath& file_name) { + if (IsValid()) + return false; + + if (!MapFileToMemory(file_name)) { + CloseHandles(); + return false; + } + + return true; +} + +bool MemoryMappedFile::IsValid() { + return data_ != NULL; +} + // Deprecated functions ---------------------------------------------------- bool AbsolutePath(std::wstring* path_str) { |