X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fscoped_temporary.h;h=b78f60541089fc6ed7833e69b8c05e965f0b4720;hb=fe933ebb2c55b4235fcba5d02af2ba91c272fc88;hp=927bce6e7d03c0d441d16307829f6e245281ee15;hpb=59f63e2b6d0dba963faee7dfee54fbb48dee396a;p=dcpomatic.git diff --git a/src/lib/scoped_temporary.h b/src/lib/scoped_temporary.h index 927bce6e7..b78f60541 100644 --- a/src/lib/scoped_temporary.h +++ b/src/lib/scoped_temporary.h @@ -1,25 +1,30 @@ /* - Copyright (C) 2012-2014 Carl Hetherington + Copyright (C) 2012-2021 Carl Hetherington - This program is free software; you can redistribute it and/or modify + This file is part of DCP-o-matic. + + DCP-o-matic is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. - This program is distributed in the hope that it will be useful, + DCP-o-matic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + along with DCP-o-matic. If not, see . */ + +#include #include +#include #include + /** @class ScopedTemporary * @brief A temporary file which is deleted when the ScopedTemporary object goes out of scope. */ @@ -29,16 +34,18 @@ public: 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 _file; };