blob: 554af469ddd3c02e0ff485161487efe0b64ce51c [file] [log] [blame]
// Copyright (c) 2014 The Chromium OS 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 CHROMIUMOS_WIDE_PROFILING_SCOPED_TEMP_PATH_H_
#define CHROMIUMOS_WIDE_PROFILING_SCOPED_TEMP_PATH_H_
#include <string>
#include "base/macros.h"
#include "chromiumos-wide-profiling/quipper_string.h"
namespace quipper {
// Used to create a temporary file or directory.
// TODO(cwp-team): add unit tests to this class.
class ScopedTempPath {
public:
ScopedTempPath() {}
// The temporary path will be removed when the object is destroyed.
virtual ~ScopedTempPath();
const string path() const {
return path_;
}
protected:
string path_;
private:
DISALLOW_COPY_AND_ASSIGN(ScopedTempPath);
};
class ScopedTempFile : public ScopedTempPath {
public:
// Create a temporary file. If successful, the path will be stored in
// |path_|. If not, |path_| will be an empty string.
ScopedTempFile();
};
class ScopedTempDir : public ScopedTempPath {
public:
// Create a temporary directory. If successful, the path will be stored in
// |path_|. If not, |path_| will be an empty string.
ScopedTempDir();
};
} // namespace quipper
#endif // CHROMIUMOS_WIDE_PROFILING_SCOPED_TEMP_PATH_H_