vrfileman

annotate src/fs.h @ 1:9e3d77dad51b

moving on...
author John Tsiombikas <nuclear@member.fsf.org>
date Sat, 31 Jan 2015 20:01:35 +0200
parents
children 282da6123fd4
rev   line source
nuclear@1 1 #ifndef FS_H_
nuclear@1 2 #define FS_H_
nuclear@1 3
nuclear@1 4 #include <vector>
nuclear@1 5
nuclear@1 6 class FSNode {
nuclear@1 7 protected:
nuclear@1 8 char *path, *name;
nuclear@1 9 FSNode *parent;
nuclear@1 10
nuclear@1 11 std::vector<FSNode*> children;
nuclear@1 12 bool expanded;
nuclear@1 13
nuclear@1 14 unsigned int uid, gid, mode;
nuclear@1 15
nuclear@1 16 private:
nuclear@1 17 FSNode(const FSNode&);
nuclear@1 18 FSNode &operator =(const FSNode&);
nuclear@1 19
nuclear@1 20 public:
nuclear@1 21 FSNode();
nuclear@1 22 virtual ~FSNode();
nuclear@1 23
nuclear@1 24 void init();
nuclear@1 25 void destroy();
nuclear@1 26 void destroy_tree();
nuclear@1 27
nuclear@1 28 virtual void set_path(const char *path);
nuclear@1 29 virtual void set_name(const char *name);
nuclear@1 30
nuclear@1 31 virtual const char *get_path() const;
nuclear@1 32 virtual const char *get_name() const;
nuclear@1 33
nuclear@1 34 virtual void add_child(FSNode *node);
nuclear@1 35
nuclear@1 36 virtual FSNode *get_parent();
nuclear@1 37 virtual const FSNode *get_parent() const;
nuclear@1 38
nuclear@1 39 virtual int get_child_count() const;
nuclear@1 40 virtual FSNode *get_child(int n);
nuclear@1 41 virtual const FSNode *get_child(int n) const;
nuclear@1 42
nuclear@1 43 virtual void expand();
nuclear@1 44 virtual bool is_expanded() const;
nuclear@1 45 };
nuclear@1 46
nuclear@1 47 class FSDir : public FSNode {
nuclear@1 48 public:
nuclear@1 49 FSDir();
nuclear@1 50
nuclear@1 51 virtual void expand();
nuclear@1 52 };
nuclear@1 53
nuclear@1 54 class FSFile : public FSNode {
nuclear@1 55 protected:
nuclear@1 56 unsigned long size;
nuclear@1 57
nuclear@1 58 public:
nuclear@1 59 FSFile();
nuclear@1 60
nuclear@1 61 void set_size(unsigned long s);
nuclear@1 62 unsigned long get_size() const;
nuclear@1 63 };
nuclear@1 64
nuclear@1 65 #endif // FS_H_