104 void setBaseDirectory();
108 void updateConfig(
const std::string &filename,
const bool append =
false,
const bool update_caches =
true);
110 void saveConfig(
const std::string &filename)
const;
112 std::string getString(
const std::string &keyName,
bool pathAbsolute =
true)
const;
114 std::vector<std::string> getKeys(
const std::string &keyName)
const;
116 std::vector<std::string> keys()
const;
118 void remove(
const std::string &rootName);
120 bool hasProperty(
const std::string &rootName)
const;
122 bool isExecutable(
const std::string &target)
const;
124 void launchProcess(
const std::string &programFilePath,
const std::vector<std::string> &programArguments)
const;
126 void setString(
const std::string &key,
const std::string &
value);
128 template <
typename T> std::optional<T> getValue(
const std::string &keyName);
130 std::string getLocalFilename()
const;
132 std::string getUserFilename()
const;
137 std::string getEnvironment(
const std::string &keyName);
139 std::string getOSName();
141 std::string getComputerName();
143 std::string getOSArchitecture();
145 std::string getOSVersion();
147 std::string getOSVersionReadable();
149 std::string getUsername();
151 std::string getCurrentDir();
153 std::string getCurrentDir()
const;
155 std::string getTempDir();
157 std::string getAppDataDir();
159 std::string getDirectoryOfExecutable()
const;
161 std::string getPathToExecutable()
const;
163 bool isNetworkDrive([[maybe_unused]]
const std::string &path);
167 std::string getPropertiesDir()
const;
170 std::string getUserPropertiesDir()
const;
175 const std::vector<std::string> &getDataSearchDirs()
const;
177 void setDataSearchDirs(
const std::vector<std::string> &searchDirs);
179 void setDataSearchDirs(
const std::string &searchDirs);
181 void appendDataSearchDir(
const std::string &path);
183 void appendDataSearchSubDir(
const std::string &subdir);
185 void setInstrumentDirectories(
const std::vector<std::string> &directories);
187 const std::vector<std::string> &getInstrumentDirectories()
const;
189 const std::string getInstrumentDirectory()
const;
191 const std::string getVTPFileDirectory();
195 void updateFacilities(
const std::string &fName =
"");
197 const std::vector<FacilityInfo *> getFacilities()
const;
199 const std::vector<std::string> getFacilityNames()
const;
203 const FacilityInfo &getFacility(
const std::string &facilityName)
const;
205 void setFacility(
const std::string &facilityName);
207 void setLogLevel(
int logLevel,
bool quiet =
false);
209 void setLogLevel(std::string
const &logLevel,
bool quiet =
false);
211 std::string getLogLevel();
214 const InstrumentInfo &getInstrument(
const std::string &instrumentName =
"")
const;
217 const std::string findLongestInstrumentPrefix(
const std::string &hint)
const;
220 void addObserver(
const Poco::AbstractObserver &observer)
const;
223 void removeObserver(
const Poco::AbstractObserver &observer)
const;
226 void configureLogging();
231 std::string getFullPath(
const std::string &filename,
const bool ignoreDirs,
const int options)
const;
246 void loadConfig(
const std::string &filename,
const bool append =
false);
248 bool readFile(
const std::string &filename, std::string &contents)
const;
251 void createUserPropertiesFile()
const;
253 std::string makeAbsolute(
const std::string &dir,
const std::string &key)
const;
255 void cacheDataSearchPaths();
257 void cacheInstrumentPaths();
259 bool isInDataSearchList(
const std::string &path)
const;
262 void clearFacilities();
264 const std::vector<std::string> getFacilityFilenames(
const std::string &fName);
267 bool addDirectoryifExists(
const std::string &directoryName, std::vector<std::string> &directoryList);
269 void getKeysRecursive(
const std::string &root, std::vector<std::string> &allKeys)
const;
272 Poco::AutoPtr<Poco::Util::PropertyFileConfiguration>
m_pConf;
301 bool m_isProxySet =
false;
305 mutable bool m_isInstrumentPrefixesCached =
false;