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_ |