|
a/src/utils/fstreewalk.h |
|
b/src/utils/fstreewalk.h |
|
... |
|
... |
44 |
// after processing a subdirectory.
|
44 |
// after processing a subdirectory.
|
45 |
enum CbFlag {FtwRegular, FtwDirEnter, FtwDirReturn};
|
45 |
enum CbFlag {FtwRegular, FtwDirEnter, FtwDirReturn};
|
46 |
enum Status {FtwOk=0, FtwError=1, FtwStop=2,
|
46 |
enum Status {FtwOk=0, FtwError=1, FtwStop=2,
|
47 |
FtwStatAll = FtwError|FtwStop};
|
47 |
FtwStatAll = FtwError|FtwStop};
|
48 |
enum Options {FtwOptNone = 0, FtwNoRecurse = 1, FtwFollow = 2,
|
48 |
enum Options {FtwOptNone = 0, FtwNoRecurse = 1, FtwFollow = 2,
|
49 |
FtwNoCanon = 4};
|
49 |
FtwNoCanon = 4,
|
50 |
|
50 |
// Tree walking options. Natural is close to depth first: process
|
|
|
51 |
// directory entries as we see them, recursing into subdirectories at
|
|
|
52 |
// once
|
|
|
53 |
// Breadth means we process all files and dirs at a given directory level
|
|
|
54 |
// before going deeper.
|
|
|
55 |
//
|
|
|
56 |
// FilesThenDirs is close to Natural, except that we process all files in a
|
|
|
57 |
// given directory before going deeper: allows keeping only a single
|
|
|
58 |
// directory open
|
|
|
59 |
// We don't do pure depth first (process subdirs before files), this does
|
|
|
60 |
// not appear to make any sense.
|
|
|
61 |
FtwTravNatural = 0x10000, FtwTravBreadth = 0x20000,
|
|
|
62 |
FtwTravFilesThenDirs = 0x40000,
|
|
|
63 |
FtwTravBreadthThenDepth = 0x80000
|
|
|
64 |
};
|
|
|
65 |
static const int FtwTravMask;
|
51 |
FsTreeWalker(int opts = FtwOptNone);
|
66 |
FsTreeWalker(int opts = FtwTravNatural);
|
52 |
~FsTreeWalker();
|
67 |
~FsTreeWalker();
|
53 |
|
68 |
|
54 |
void setOpts(Options opts);
|
69 |
void setOpts(Options opts, int depthswitch = 4);
|
55 |
|
70 |
|
56 |
/**
|
71 |
/**
|
57 |
* Begin file system walk.
|
72 |
* Begin file system walk.
|
58 |
* @param dir is not checked against the ignored patterns (this is
|
73 |
* @param dir is not checked against the ignored patterns (this is
|
59 |
* a feature and must not change.
|
74 |
* a feature and must not change.
|