]> git.localhorst.tv Git - blank.git/blobdiff - src/io/filesystem.hpp
somewhat self-cleaning temp dir
[blank.git] / src / io / filesystem.hpp
index 2af55fcce265d866ef33139a470fb0555fc28cd3..d7fe184da71bf0be3c9898261184e5a853a055ab 100644 (file)
@@ -42,6 +42,27 @@ bool remove_file(const std::string &);
 /// @return true if the directory was completely removed
 bool remove_dir(const std::string &);
 
+
+/// Create a temporary directory with lifetime tie to the instance's.
+/// Note that the directory may survive its object if removal fails
+/// for any reason, e.g. another process changing permissions.
+class TempDir {
+
+public:
+       TempDir();
+       ~TempDir();
+
+       TempDir(const TempDir &) = delete;
+       TempDir &operator =(const TempDir &) = delete;
+
+public:
+       const std::string &Path() const noexcept { return path; }
+
+private:
+       std::string path;
+
+};
+
 }
 
 #endif