WvStreams
|
00001 /* 00002 * Worldvisions Weaver Software: 00003 * Copyright (C) 1997-2002 Net Integration Technologies, Inc. 00004 * 00005 * Globbing directory iterator. 00006 * 00007 */ 00008 00009 #include "wvglobdiriter.h" 00010 #include "wvglob.h" 00011 00012 WvGlobDirIter::WvGlobDirIter( WvStringParm dirname, WvStringParm glob_str, 00013 bool _recurse, bool _skip_mounts, size_t sizeof_stat ) 00014 : WvDirIter(dirname, _recurse, _skip_mounts, sizeof_stat), glob(NULL) 00015 { 00016 if (!glob_str.isnull()) 00017 { 00018 glob = new WvGlob(glob_str); 00019 if (!glob->isok()) 00020 { 00021 delete glob; 00022 glob = NULL; 00023 } 00024 } 00025 } 00026 00027 WvGlobDirIter::~WvGlobDirIter() 00028 { 00029 if (glob) delete glob; 00030 } 00031 00032 bool WvGlobDirIter::next() 00033 { 00034 bool result; 00035 00036 do 00037 { 00038 result = WvDirIter::next(); 00039 } while (result && glob && !glob->match(ptr()->relname)); 00040 00041 return result; 00042 }