3 /// Temp directory & file wrapper class
7 Copyright (C) 2009-2013, Chris Frey <cdfrey@foursquare.net>
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 2 of the License, or
12 (at your option) any later version.
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU General Public License in the COPYING file at the
19 root directory of this project for more details.
22 #ifndef __BARRYDESKTOP_TEMPDIR_H__
23 #define __BARRYDESKTOP_TEMPDIR_H__
30 /// This class creates a new temp directory on instantiation,
31 /// and provides access members to retrieve the directory name
32 /// and incrementing filenames. On destruction, all the returned
33 /// filenames are deleted, and the directory is removed.
40 std::string
MakeFilename(int file_id
) const;
43 /// basename is a simple identifier, such as "barry"
44 /// The /tmp dir will be prepended automatically.
45 TempDir(const char *basename
);
48 std::string
GetDir() const { return m_template
; }
50 /// Returns unique filename in the form of
51 /// /tmp/opensyncapi-XXXXX/0, 1, 2, etc.
52 std::string
GetNewFilename();