libqi
1.14.5
|
00001 /* 00002 * Copyright (c) 2012 Aldebaran Robotics. All rights reserved. 00003 * Use of this source code is governed by a BSD-style license that can be 00004 * found in the COPYING file. 00005 */ 00006 00011 #pragma once 00012 #ifndef _LIBQI_QI_PATH_HPP_ 00013 #define _LIBQI_QI_PATH_HPP_ 00014 00015 # include <string> 00016 # include <vector> 00017 # include <qi/config.hpp> 00018 00027 namespace qi 00028 { 00029 namespace path 00030 { 00031 00037 QI_API std::string sdkPrefix(); 00038 00039 // not thread-safe, must be kept internal 00040 namespace detail { 00041 00046 QI_API std::vector<std::string> getSdkPrefixes(); 00047 00057 QI_API void addOptionalSdkPrefix(const char* prefix); 00058 00065 QI_API void clearOptionalSdkPrefix(); 00066 00067 } 00068 00069 00079 QI_API std::string findBin(const std::string& name); 00080 00095 QI_API std::string findLib(const std::string& name); 00096 00119 QI_API std::string findConf(const std::string& applicationName, 00120 const std::string& filename); 00121 00143 QI_API std::string findData(const std::string& applicationName, 00144 const std::string& filename); 00145 00146 00159 QI_API std::vector<std::string> confPaths(const std::string& applicationName=""); 00160 00173 QI_API std::vector<std::string> dataPaths(const std::string& applicationName=""); 00174 00186 QI_API std::vector<std::string> binPaths(); 00187 00199 QI_API std::vector<std::string> libPaths(); 00200 00201 00216 QI_API std::string userWritableDataPath(const std::string& applicationName, 00217 const std::string& filename); 00218 00233 QI_API std::string userWritableConfPath(const std::string& applicationName, 00234 const std::string& filename=""); 00235 00236 00237 }; 00238 }; 00239 00240 #endif // _LIBQI_QI_PATH_HPP_