diff options
author | thakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-19 23:34:17 +0000 |
---|---|---|
committer | thakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-19 23:34:17 +0000 |
commit | e078590661444968a2c49a3e5464413714471dca (patch) | |
tree | 13a4dbe4dedccc8057361bd86c89e065390247fc /base/scoped_temp_dir.h | |
parent | d9f76627b14170b95639619089139b6f0493ae8c (diff) | |
download | chromium_src-e078590661444968a2c49a3e5464413714471dca.zip chromium_src-e078590661444968a2c49a3e5464413714471dca.tar.gz chromium_src-e078590661444968a2c49a3e5464413714471dca.tar.bz2 |
Move scoped_temp_dir and scoped_native_library back from base/memory to base.
It looks like they got moved accidentally in http://codereview.chromium.org/6714032
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/7048007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@86010 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/scoped_temp_dir.h')
-rw-r--r-- | base/scoped_temp_dir.h | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/base/scoped_temp_dir.h b/base/scoped_temp_dir.h new file mode 100644 index 0000000..d9f0e2f --- /dev/null +++ b/base/scoped_temp_dir.h @@ -0,0 +1,59 @@ +// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef BASE_SCOPED_TEMP_DIR_H_ +#define BASE_SCOPED_TEMP_DIR_H_ +#pragma once + +// An object representing a temporary / scratch directory that should be cleaned +// up (recursively) when this object goes out of scope. Note that since +// deletion occurs during the destructor, no further error handling is possible +// if the directory fails to be deleted. As a result, deletion is not +// guaranteed by this class. +// +// Multiple calls to the methods which establish a temporary directory +// (CreateUniqueTempDir, CreateUniqueTempDirUnderPath, and Set) must have +// intervening calls to Delete or Take, or the calls will fail. + +#include "base/base_api.h" +#include "base/file_path.h" + +class BASE_API ScopedTempDir { + public: + // No directory is owned/created initially. + ScopedTempDir(); + + // Recursively delete path. + ~ScopedTempDir(); + + // Creates a unique directory in TempPath, and takes ownership of it. + // See file_util::CreateNewTemporaryDirectory. + bool CreateUniqueTempDir() WARN_UNUSED_RESULT; + + // Creates a unique directory under a given path, and takes ownership of it. + bool CreateUniqueTempDirUnderPath(const FilePath& path) WARN_UNUSED_RESULT; + + // Takes ownership of directory at |path|, creating it if necessary. + // Don't call multiple times unless Take() has been called first. + bool Set(const FilePath& path) WARN_UNUSED_RESULT; + + // Deletes the temporary directory wrapped by this object. + bool Delete() WARN_UNUSED_RESULT; + + // Caller takes ownership of the temporary directory so it won't be destroyed + // when this object goes out of scope. + FilePath Take(); + + const FilePath& path() const { return path_; } + + // Returns true if path_ is non-empty and exists. + bool IsValid() const; + + private: + FilePath path_; + + DISALLOW_COPY_AND_ASSIGN(ScopedTempDir); +}; + +#endif // BASE_SCOPED_TEMP_DIR_H_ |