Bumped copyright dates for 2013
[barry.git] / desktop / src / tempdir.h
blob63587993c47c12cdf5202a87cfed67a5628e7d9d
1 ///
2 /// \file tempdir.h
3 /// Temp directory & file wrapper class
4 ///
6 /*
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__
25 #include <string>
28 // class TempDir
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.
34 ///
35 class TempDir
37 char *m_template;
38 int m_files;
40 std::string MakeFilename(int file_id) const;
42 public:
43 /// basename is a simple identifier, such as "barry"
44 /// The /tmp dir will be prepended automatically.
45 TempDir(const char *basename);
46 ~TempDir();
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();
55 #endif