/*
- Copyright (C) 2012-2014 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2012-2021 Carl Hetherington <cth@carlh.net>
This file is part of DCP-o-matic.
*/
+
+#include <dcp/file.h>
#include <boost/filesystem.hpp>
+#include <boost/optional.hpp>
#include <cstdio>
+
/** @class ScopedTemporary
* @brief A temporary file which is deleted when the ScopedTemporary object goes out of scope.
*/
ScopedTemporary ();
~ScopedTemporary ();
- /** @return temporary filename */
- boost::filesystem::path file () const {
- return _file;
+ ScopedTemporary (ScopedTemporary const&) = delete;
+ ScopedTemporary& operator= (ScopedTemporary const&) = delete;
+
+ /** @return temporary pathname */
+ boost::filesystem::path path () const {
+ return _path;
}
char const * c_str () const;
- FILE* open (char const *);
- void close ();
+ dcp::File& open (char const *);
private:
- boost::filesystem::path _file;
- FILE* _open;
+ boost::filesystem::path _path;
+ boost::optional<dcp::File> _file;
};