Changeset 1022 for trunk/rtorrent/src/utils/directory.h
- Timestamp:
- 12/23/07 14:12:23 (4 years ago)
- Files:
-
- 1 modified
-
trunk/rtorrent/src/utils/directory.h (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/rtorrent/src/utils/directory.h
r938 r1022 39 39 40 40 #include <string> 41 #include < list>41 #include <vector> 42 42 43 43 namespace utils { 44 44 45 class Directory : private std::list<std::string> { 45 struct directory_entry { 46 // The name and types should match POSIX. 47 uint32_t d_fileno; 48 uint16_t d_reclen; 49 uint8_t d_type; 50 51 std::string d_name; 52 }; 53 54 class Directory : private std::vector<directory_entry> { 46 55 public: 47 typedef std:: list<std::string> Base;56 typedef std::vector<directory_entry> base_type; 48 57 49 using Base::iterator; 50 using Base::const_iterator; 51 using Base::reverse_iterator; 52 using Base::const_reverse_iterator; 58 using base_type::iterator; 59 using base_type::const_iterator; 60 using base_type::reverse_iterator; 61 using base_type::const_reverse_iterator; 62 using base_type::value_type; 53 63 54 using Base::begin;55 using Base::end;56 using Base::rbegin;57 using Base::rend;64 using base_type::begin; 65 using base_type::end; 66 using base_type::rbegin; 67 using base_type::rend; 58 68 59 using Base::empty;60 using Base::size;69 using base_type::empty; 70 using base_type::size; 61 71 62 using Base::erase;72 using base_type::erase; 63 73 64 74 Directory() {} … … 69 79 bool update(bool hideDot = true); 70 80 81 // Ergh... 71 82 const std::string& get_path() { return m_path; } 83 void set_path(const std::string& path) { m_path = path; } 72 84 73 85 // Make a list with full path names. 74 Base make_list(); 86 // 87 // Fix the uses of this, real bad stuff. 88 std::vector<std::string> make_list(); 75 89 76 90 private: … … 78 92 }; 79 93 94 inline bool operator == (const directory_entry& left, const directory_entry& right) { return left.d_name == right.d_name; } 95 inline bool operator != (const directory_entry& left, const directory_entry& right) { return left.d_name != right.d_name; } 96 inline bool operator < (const directory_entry& left, const directory_entry& right) { return left.d_name < right.d_name; } 97 inline bool operator > (const directory_entry& left, const directory_entry& right) { return left.d_name > right.d_name; } 98 inline bool operator <= (const directory_entry& left, const directory_entry& right) { return left.d_name <= right.d_name; } 99 inline bool operator >= (const directory_entry& left, const directory_entry& right) { return left.d_name >= right.d_name; } 100 80 101 } 81 102
