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