Sponsored Link •
|
This page shows the complete listing of class glob_sequence
, which is described
in the article, "Wild-card Searches of UNIX Directories with Random-Access Iterators":
// globsequence.h: Declaration of the unixstl::glob_sequence class #include "unixstl.h" // UNIXSTL root header #include "unixstl_filesystem_traits.h" // filesystem_traits #include "unixstl_file_path_buffer.h" // basic_file_path_buffer #include "stlsoft_iterator.h" // iterator helper classes #include "stlsoft_auto_buffer.h" // auto_buffer #include <sys/types.h> #include <sys/stat.h> // stat() #include <errno.h> #include <glob.h> // glob(), globfree() #include <algorithm> // std::sort #include <utility> // std::swap class glob_sequence { /// Types public: typedef glob_sequence class_type; typedef char char_type; typedef filesystem_traits<char_type> traits_type; typedef char_type const *value_type; typedef value_type const &const_reference; typedef value_type const *const_pointer; typedef size_t size_type; typedef ptrdiff_t difference_type; typedef stlsoft::pointer_iterator < value_type , const_pointer , const_reference >::iterator_type const_iterator; typedef stlsoft::reverse_iterator_base< const_iterator , value_type , const_reference , const_pointer , difference_type > const_reverse_iterator; /// Flags public: enum { includeDots = 0x0008 , directories = 0x0010 , files = 0x0020 , noSort = 0x0100 , markDirs = 0x0200 , absolutePath = 0x0400 }; /// Construction public: explicit glob_sequence(char const *pattern, unsigned flags = noSort); glob_sequence(char_type const *directory, char_type const *pattern, unsigned flags = noSort); ~glob_sequence(); unsigned init_(char_type const *directory, char_type const *pattern); /// Attributes public: size_t size() const; bool empty() const; const value_type operator [](size_type index) const; /// Iteration public: const_iterator begin() const; const_iterator end() const; const_reverse_iterator rbegin() const; const_reverse_iterator rend() const; // Implementation private: static unsigned validate_flags_(unsigned flags); static bool is_end_of_path_elements_(char_type const *pch, difference_type index); static bool is_dots_maybe_slashed_(char_type const *s, bool &bTwoDots); size_t init_glob_(char_type const *directory, char_type const *pattern); // Members private: typedef stlsoft::auto_buffer< char_type* , stlsoft::malloc_allocator<char_type*> , 32 > buffer_type; unsigned const m_flags; char_type const **m_base; size_t m_cItems; buffer_type m_buffer; glob_t m_glob; // Not to be implemented private: glob_sequence(class_type const &); class_type const &operator =(class_type const &); };
Sponsored Links
|