BALL
1.4.1
|
00001 // -*- Mode: C++; tab-width: 2; -*- 00002 // vi: set ts=2: 00003 // 00004 // $Id: path.h,v 1.13.20.1 2007/06/21 19:38:10 oliver Exp $ 00005 // 00006 // Author: 00007 // Oliver Kohlbacher 00008 // 00009 00010 #ifndef BALL_COMMON_PATH_H 00011 #define BALL_COMMON_PATH_H 00012 00013 #ifndef BALL_CONFIG_CONFIG_H 00014 # include <BALL/CONFIG/config.h> 00015 #endif 00016 00017 #ifndef BALL_COMMON_GLOBAL_H 00018 # include <BALL/COMMON/global.h> 00019 #endif 00020 00021 #ifndef BALL_DATATYPE_STRING_H 00022 # include <BALL/DATATYPE/string.h> 00023 #endif 00024 00025 #include <vector> 00026 00027 using std::vector; 00028 00029 namespace BALL 00030 { 00039 class BALL_EXPORT Path 00040 { 00041 public: 00045 00048 Path(); 00050 00068 String getDataPath(); 00069 00074 void setDataPath(const String& path); 00075 00079 void addDataPath(const String& path); 00080 00085 String getDefaultDataPath(); 00086 00099 String find(const String& name); 00100 00104 String findStrict(const String& name); 00105 00107 void reset(); 00108 00109 00110 protected: 00111 00112 void buildPathArray_(); 00113 00114 static String path_; 00115 static bool path_array_valid_; 00116 static bool environment_checked_; 00117 static std::vector<String> path_array_; 00118 static bool initialized_; 00119 }; 00120 00121 } // namespace BALL 00122 00123 00124 #endif // BALL_COMMON_PATH_H