00001 #ifndef GAUDIKERNEL_PATHRESOLVER_H 00002 #define GAUDIKERNEL_PATHRESOLVER_H 00003 00004 #include <string> 00005 00006 namespace System { 00007 00008 class PathResolver 00009 { 00010 public: 00011 typedef enum 00012 { 00013 Ok, 00014 EnvironmentVariableUndefined, 00015 UnknownDirectory 00016 } SearchPathStatus; 00017 00018 typedef enum 00019 { 00020 LocalSearch, 00021 RecursiveSearch 00022 } SearchType; 00023 00033 static std::string find_file (const std::string& logical_file_name, 00034 const std::string& search_path, 00035 SearchType search_type = LocalSearch); 00036 00046 static std::string find_file_from_list (const std::string& logical_file_name, 00047 const std::string& search_list, 00048 SearchType search_type = LocalSearch); 00049 00059 static std::string find_directory (const std::string& logical_file_name, 00060 const std::string& search_path, 00061 SearchType search_type = LocalSearch); 00062 00072 static std::string find_directory_from_list (const std::string& logical_file_name, 00073 const std::string& search_list, 00074 SearchType search_type = LocalSearch); 00075 00083 static SearchPathStatus check_search_path (const std::string& search_path); 00084 }; 00085 00086 PathResolver::SearchPathStatus PathResolverCheckSearchPath (const std::string& search_path); 00087 std::string PathResolverFindDirectory (const std::string& logical_file_name, 00088 const std::string& search_path); 00089 std::string PathResolverFindDirectoryFromList (const std::string& logical_file_name, 00090 const std::string& search_list); 00091 std::string PathResolverFindFile (const std::string& logical_file_name, 00092 const std::string& search_path); 00093 std::string PathResolverFindFileFromList (const std::string& logical_file_name, 00094 const std::string& search_list); 00095 std::string PathResolverFindXMLFile (const std::string& logical_file_name); 00096 std::string PathResolverFindDataFile (const std::string& logical_file_name); 00097 00098 } 00099 00100 #endif