Public Member Functions | Protected Attributes | Private Member Functions | List of all members
vul_file_iterator Class Reference

Iterate through directories and/or "glob" patterns (*. More...

#include <vul_file_iterator.h>

Public Member Functions

 vul_file_iterator ()
 
 vul_file_iterator (char const *glob)
 Initialize, and scan to get first file from "glob". More...
 
 vul_file_iterator (std::string const &glob)
 Initialize, and scan to get first file from "glob". More...
 
 ~vul_file_iterator ()
 
 operator bool () const
 Ask if done. More...
 
bool operator! () const
 Inverse boolean value. More...
 
char const * operator() ()
 Return the currently pointed-to pathname. More...
 
char const * filename ()
 Return the non-directory part of the current pathname. More...
 
char const * match (int i)
 Return the match for the i'th glob wildcard character (* or ?). More...
 
vul_file_iteratoroperator++ ()
 Increment to the next file. More...
 
void reset (char const *glob)
 Run a new match. More...
 

Protected Attributes

vul_file_iterator_datap
 

Private Member Functions

vul_file_iterator operator++ (int)
 

Detailed Description

Iterate through directories and/or "glob" patterns (*.

*). It is efficient to use

for (vul_file_iterator fn="/dir/*"; fn; ++fn) {
* ... use fn() as filename
* }
*

simply to list the contents of a directory. If you really want just the *.ext files, it is efficient to use

for (vul_file_iterator fn="/dir/*.ext"; fn; ++fn) {
* ... use fn() as filename
* }
*

rather than opendir/glob/etc.

Valid glob patterns are unix-like - '?' matches precisely one character '*' matches any sequence (including empty), [abc] matches either 'a' or 'b' or 'c'

Note
There is no implicit ordering of the files in a directory; the order is OS-dependent and is not guaranteed by this class. You may wish, therefore, to store the filenames returned and sort them yourself, if you want to process files in (for example) alphanumeric order.

Definition at line 47 of file vul_file_iterator.h.

Constructor & Destructor Documentation

◆ vul_file_iterator() [1/3]

vul_file_iterator::vul_file_iterator ( )
inline

Definition at line 52 of file vul_file_iterator.h.

◆ vul_file_iterator() [2/3]

vul_file_iterator::vul_file_iterator ( char const *  glob)

Initialize, and scan to get first file from "glob".

Definition at line 255 of file vul_file_iterator.cxx.

◆ vul_file_iterator() [3/3]

vul_file_iterator::vul_file_iterator ( std::string const &  glob)

Initialize, and scan to get first file from "glob".

Definition at line 261 of file vul_file_iterator.cxx.

◆ ~vul_file_iterator()

vul_file_iterator::~vul_file_iterator ( )

Definition at line 267 of file vul_file_iterator.cxx.

Member Function Documentation

◆ filename()

char const * vul_file_iterator::filename ( )

Return the non-directory part of the current pathname.

Definition at line 283 of file vul_file_iterator.cxx.

◆ match()

char const* vul_file_iterator::match ( int  i)

Return the match for the i'th glob wildcard character (* or ?).

Uses the most recent glob result.

◆ operator bool()

vul_file_iterator::operator bool ( ) const
explicit

Ask if done.

Won't spin the disk

Definition at line 288 of file vul_file_iterator.cxx.

◆ operator!()

bool vul_file_iterator::operator! ( ) const

Inverse boolean value.

Definition at line 293 of file vul_file_iterator.cxx.

◆ operator()()

char const * vul_file_iterator::operator() ( )

Return the currently pointed-to pathname.

Won't spin the disk

Definition at line 278 of file vul_file_iterator.cxx.

◆ operator++() [1/2]

vul_file_iterator & vul_file_iterator::operator++ ( )

Increment to the next file.

Will spin the disk

Definition at line 298 of file vul_file_iterator.cxx.

◆ operator++() [2/2]

vul_file_iterator vul_file_iterator::operator++ ( int  )
inlineprivate

Definition at line 92 of file vul_file_iterator.h.

◆ reset()

void vul_file_iterator::reset ( char const *  glob)

Run a new match.

Definition at line 272 of file vul_file_iterator.cxx.

Member Data Documentation

◆ p

vul_file_iterator_data* vul_file_iterator::p
protected

Definition at line 88 of file vul_file_iterator.h.


The documentation for this class was generated from the following files: