Bayonne2 / Common C++ 2 Framework
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Member Functions | Private Attributes
DirTree Class Reference

A generic class to walk a hierarchical directory structure. More...

#include <file.h>

Collaboration diagram for DirTree:
Collaboration graph
[legend]

Public Member Functions

 DirTree (const char *prefix, unsigned maxdepth)
 Construct a directory tree walk starting at the specified prefix. More...
 
 DirTree (unsigned maxdepth)
 Construct an un-opened directory tree of a known maximum depth. More...
 
virtual ~DirTree ()
 
void open (const char *prefix)
 Open a directory tree path. More...
 
void close (void)
 Close the directory path. More...
 
char * getPath (void)
 Extract the next full pathname from the directory walk. More...
 
unsigned perform (const char *prefix)
 This is used to step through the filter virtual for an entire subtree, and is used for cases where a derived DirTree class performs it's primary operations through filter rather than externally by calling getPath(). More...
 

Protected Member Functions

virtual bool filter (const char *file, struct stat *ino)
 Virtual method to filter results. More...
 

Private Attributes

char path [256+1]
 
Dirdir
 
unsigned max
 
unsigned current
 
unsigned prefixpos
 

Detailed Description

A generic class to walk a hierarchical directory structure.

Author
David Sugar dyfet.nosp@m.@ost.nosp@m.el.co.nosp@m.m Directory tree walking.

Definition at line 315 of file file.h.

Constructor & Destructor Documentation

DirTree::DirTree ( const char *  prefix,
unsigned  maxdepth 
)

Construct a directory tree walk starting at the specified prefix.

A maximum subdirectory depth is also specified.

Parameters
prefixto start walk.
maxdepthsubdirectory depth to examine.
DirTree::DirTree ( unsigned  maxdepth)

Construct an un-opened directory tree of a known maximum depth.

Parameters
maxdepthsubdirectory subdirectory depth.
virtual DirTree::~DirTree ( )
virtual

Member Function Documentation

void DirTree::close ( void  )

Close the directory path.

virtual bool DirTree::filter ( const char *  file,
struct stat *  ino 
)
protectedvirtual

Virtual method to filter results.

Virtual override methods should call baseclass method to assure . and .. names are stripped out.

Returns
true if current filename is accepted.
Parameters
filepath to examine
inoinfo of type, date, etc.
char* DirTree::getPath ( void  )

Extract the next full pathname from the directory walk.

When returning directories, a '/' is appended. The returned string is a buffer of MAX_PATH size.

Returns
path of next subdirectory entry or NULL.
void DirTree::open ( const char *  prefix)

Open a directory tree path.

Parameters
prefixdirectory path to open.
unsigned DirTree::perform ( const char *  prefix)

This is used to step through the filter virtual for an entire subtree, and is used for cases where a derived DirTree class performs it's primary operations through filter rather than externally by calling getPath().

Returns
number of files and directories examined.
Parameters
prefixdirectory path to examine.

Field Documentation

unsigned DirTree::current
private

Definition at line 320 of file file.h.

Dir* DirTree::dir
private

Definition at line 319 of file file.h.

unsigned DirTree::max
private

Definition at line 320 of file file.h.

char DirTree::path[256+1]
private

Definition at line 318 of file file.h.

unsigned DirTree::prefixpos
private

Definition at line 320 of file file.h.


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