![]() |
|
|
Generated: 8 Jan 2009 |
#include <DirSearchPath.h>

Definition at line 18 of file DirSearchPath.h.
Public Types | |
| typedef boost::filesystem::path | path |
Public Member Functions | |
structors | |
| DirSearchPath () | |
| DirSearchPath (const std::string &stringifiedPath, const char *separator=",:") | |
modifiers | |
| bool | add (const path &dir) |
| bool | addCWD () |
| add current work dir (*nix pwd) to path | |
accessors | |
| bool | find (const std::string &fileName, std::string &fullFileName) const |
| returns a flag if fileName found in search path, and sets ref to fully qualified file name (in native form) | |
| bool | find (const path &file, path &fileFound) const |
| returns a flag if file found in search path. Sets ref to completed path | |
| std::list< path > | find_all (const path &file) const |
| returns lists of files found in search path. | |
Static Public Member Functions | |
helpers | |
| static bool | existsDir (const std::string &dirName) |
| check dirName is valid | |
| static bool | existsDir (const path &dir) |
| check dir path is valid | |
Private Attributes | |
| std::list< path > | m_dirs |
| the dir container | |
Classes | |
| class | eqPath |
| name More... | |
| typedef boost::filesystem::path DirSearchPath::path |
Definition at line 20 of file DirSearchPath.h.
| DirSearchPath::DirSearchPath | ( | ) | [inline] |
| DirSearchPath::DirSearchPath | ( | const std::string & | stringifiedPath, | |
| const char * | separator = ",:" | |||
| ) |
| boost::filesystem::filesystem_error |
Definition at line 20 of file DirSearchPath.cpp.
00020 { 00021 addCWD(); //FIXME is this a good idea? 00022 00023 typedef tokenizer<char_separator<char> > Tokenizer; 00024 00025 Tokenizer tok(stringifiedPath, char_separator<char>(separator)); 00026 00027 00028 //add names to dir container, filtering dir names to remove invalid ones 00029 //notice how we iterate over all tokens even if there is an illegal one 00030 Tokenizer::iterator it = tok.begin(); 00031 while(it != tok.end()) { 00032 try { 00033 //path p( *(it++), boost::filesystem::native); 00034 // For some reason native() does not work with boost 1.31. Changed to no_check and cross the fingers.... 00035 path p( *(it++), boost::filesystem::no_check); 00036 add(p); 00037 } 00038 catch (boost::filesystem::filesystem_error /*err*/) { 00039 } 00040 } 00041 }
| bool DirSearchPath::add | ( | const path & | dir | ) |
| filesystem_error |
Definition at line 62 of file DirSearchPath.cpp.
00062 { 00063 bool dirExist(existsDir(dir)); 00064 //add dir to path even if dir does not (yet) exist, 00065 // but don't add twice same dir 00066 if (m_dirs.end() == std::find_if(m_dirs.begin(), m_dirs.end(), eqPath(dir))) 00067 m_dirs.push_back(dir); 00068 return dirExist; 00069 }
| bool DirSearchPath::addCWD | ( | ) |
| bool DirSearchPath::find | ( | const std::string & | fileName, | |
| std::string & | fullFileName | |||
| ) | const |
returns a flag if fileName found in search path, and sets ref to fully qualified file name (in native form)
Definition at line 72 of file DirSearchPath.cpp.
00072 { 00073 bool rc(false); 00074 try { 00075 path fileFound; 00076 if ( (rc = find(path(fileName), fileFound)) ) 00077 fullFileName = fileFound.native_directory_string(); 00078 } catch (...) {} 00079 return rc; 00080 }
returns a flag if file found in search path. Sets ref to completed path
Definition at line 83 of file DirSearchPath.cpp.
00083 { 00084 bool rc(false); 00085 for (std::list<path>::const_iterator iDir=m_dirs.begin(); iDir!=m_dirs.end(); ++iDir) { 00086 path full(*iDir / file); 00087 if (exists(full)) { 00088 fileFound = full; 00089 rc = true; 00090 break; 00091 } 00092 } 00093 return rc; 00094 }
| std::list< DirSearchPath::path > DirSearchPath::find_all | ( | const path & | file | ) | const |
returns lists of files found in search path.
Definition at line 98 of file DirSearchPath.cpp.
00098 { 00099 std::list<path> found; 00100 for (std::list<path>::const_iterator iDir=m_dirs.begin(); iDir!=m_dirs.end(); ++iDir) { 00101 path full(*iDir / file); 00102 if (exists(full)) { 00103 found.push_back(full); 00104 } 00105 } 00106 return found; 00107 }
| bool DirSearchPath::existsDir | ( | const std::string & | dirName | ) | [static] |
check dirName is valid
Definition at line 110 of file DirSearchPath.cpp.
00110 { 00111 bool rc(false); 00112 try { 00113 rc=is_directory(path(dirName)); 00114 } catch(...) {} 00115 return rc; 00116 }
| bool DirSearchPath::existsDir | ( | const path & | dir | ) | [static] |
std::list<path> DirSearchPath::m_dirs [private] |