libqi  1.12
qi/path.hpp
Go to the documentation of this file.
00001 
00012 #pragma once
00013 #ifndef _LIBQI_QI_PATH_HPP_
00014 #define _LIBQI_QI_PATH_HPP_
00015 
00016 # include <string>
00017 # include <vector>
00018 # include <qi/config.hpp>
00019 
00028 namespace qi
00029 {
00030   namespace path
00031   {
00032 
00038     QI_API std::string sdkPrefix();
00039 
00040     // not thread-safe, must be kept internal
00041     namespace detail {
00042 
00047       QI_API std::vector<std::string> getSdkPrefixes();
00048 
00058       QI_API void addOptionalSdkPrefix(const char* prefix);
00059 
00066       QI_API void clearOptionalSdkPrefix();
00067 
00068     }
00069 
00070 
00080     QI_API std::string findBin(const std::string& name);
00081 
00096     QI_API std::string findLib(const std::string& name);
00097 
00122     QI_API std::string findConf(const std::string& applicationName,
00123                                 const std::string& filename);
00124 
00148     QI_API std::string findData(const std::string& applicationName,
00149                                 const std::string& filename);
00150 
00151 
00164     QI_API std::vector<std::string> confPaths(const std::string& applicationName="");
00165 
00178     QI_API std::vector<std::string> dataPaths(const std::string& applicationName="");
00179 
00191     QI_API std::vector<std::string> binPaths();
00192 
00204     QI_API std::vector<std::string> libPaths();
00205 
00206 
00221     QI_API std::string userWritableDataPath(const std::string& applicationName,
00222                                             const std::string& filename);
00223 
00237     QI_API std::string userWritableConfPath(const std::string& applicationName,
00238                                             const std::string& filename="");
00239 
00240 
00241   };
00242 };
00243 
00244 #endif  // _LIBQI_QI_PATH_HPP_
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines