diff options
author | erikkay@google.com <erikkay@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-01-28 20:49:35 +0000 |
---|---|---|
committer | erikkay@google.com <erikkay@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-01-28 20:49:35 +0000 |
commit | 4a251111c2d7754fb99f49e1c7da01dc2813d05f (patch) | |
tree | 75168f66fb01c306baa5be1210354b55eaf6d303 /base/scoped_temp_dir.h | |
parent | 6a9a660a03de66f8ed1e2d75ea56efcde9ad6d74 (diff) | |
download | chromium_src-4a251111c2d7754fb99f49e1c7da01dc2813d05f.zip chromium_src-4a251111c2d7754fb99f49e1c7da01dc2813d05f.tar.gz chromium_src-4a251111c2d7754fb99f49e1c7da01dc2813d05f.tar.bz2 |
Add ScopedTempDir - a class that manages the lifetime of a temporary directory.
Review URL: http://codereview.chromium.org/19411
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@8824 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/scoped_temp_dir.h')
-rw-r--r-- | base/scoped_temp_dir.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/base/scoped_temp_dir.h b/base/scoped_temp_dir.h new file mode 100644 index 0000000..e9d45b9 --- /dev/null +++ b/base/scoped_temp_dir.h @@ -0,0 +1,47 @@ +// Copyright (c) 2009 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_ + +// 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. + +#include "base/file_path.h" + +class 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(); + + // 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); + + // 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_ |