libshevek
dir.hh
1 /* dir.hh - directory access
2  * Copyright 2006 Bas Wijnen <wijnen@debian.org>
3  *
4  * This program is free software: you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation, either version 3 of the License, or
7  * (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program. If not, see <http://www.gnu.org/licenses/>.
16  */
17 
18 #ifndef SHEVEK_DIR_HH
19 #define SHEVEK_DIR_HH
20 
21 #include <string>
22 #include <sys/types.h>
23 #include <set>
24 #include <glibmm.h>
25 
26 namespace shevek
27 {
29  class dir
30  {
31  public:
33  struct file
34  {
36  std::string name;
38  bool is_dir;
40  uid_t uid;
42  gid_t gid;
44  off_t size;
46  bool operator< (file const &that) const;
47  };
49  typedef std::set <file> store;
51  typedef store::const_iterator const_iterator;
53  dir ();
55  dir (std::string const &path);
57  void load (std::string const &path);
59  const_iterator begin () const;
61  const_iterator end () const;
63  unsigned size () const;
64  private:
65  store data;
66  };
67 }
68 
69 #endif
std::string name
The name of the file.
Definition: dir.hh:36
dir()
Create an empty directory object.
Definition: args.hh:52
store::const_iterator const_iterator
Iterator for looping over the files.
Definition: dir.hh:51
void load(std::string const &path)
Load new content into an existing directory object.
Get information about files in a directory.
Definition: dir.hh:29
std::set< file > store
Storage of the files.
Definition: dir.hh:49
uid_t uid
The user-ID of the file.
Definition: dir.hh:40
gid_t gid
The group-ID of the file.
Definition: dir.hh:42
const_iterator end() const
Loop over the files.
off_t size
The size of the file.
Definition: dir.hh:44
const_iterator begin() const
Loop over the files.
bool operator<(file const &that) const
Sorting operator, needed for putting them in a std::set.
Information about a single file in a directory.
Definition: dir.hh:33
bool is_dir
Whether it is a directory.
Definition: dir.hh:38
unsigned size() const
Number of files in the directory.