libqi  1.14
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
path.hpp
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2012 Aldebaran Robotics. All rights reserved.
3  * Use of this source code is governed by a BSD-style license that can be
4  * found in the COPYING file.
5  */
6 
11 #pragma once
12 #ifndef _LIBQI_QI_PATH_HPP_
13 #define _LIBQI_QI_PATH_HPP_
14 
15 # include <string>
16 # include <vector>
17 # include <qi/config.hpp>
18 
27 namespace qi
28 {
29  namespace path
30  {
31 
37  QI_API std::string sdkPrefix();
38 
39  // not thread-safe, must be kept internal
40  namespace detail {
41 
46  QI_API std::vector<std::string> getSdkPrefixes();
47 
57  QI_API void addOptionalSdkPrefix(const char* prefix);
58 
65  QI_API void clearOptionalSdkPrefix();
66 
67  }
68 
69 
79  QI_API std::string findBin(const std::string& name);
80 
95  QI_API std::string findLib(const std::string& name);
96 
119  QI_API std::string findConf(const std::string& applicationName,
120  const std::string& filename);
121 
143  QI_API std::string findData(const std::string& applicationName,
144  const std::string& filename);
145 
146 
159  QI_API std::vector<std::string> confPaths(const std::string& applicationName="");
160 
173  QI_API std::vector<std::string> dataPaths(const std::string& applicationName="");
174 
186  QI_API std::vector<std::string> binPaths();
187 
199  QI_API std::vector<std::string> libPaths();
200 
201 
216  QI_API std::string userWritableDataPath(const std::string& applicationName,
217  const std::string& filename);
218 
233  QI_API std::string userWritableConfPath(const std::string& applicationName,
234  const std::string& filename="");
235 
236 
237  };
238 };
239 
240 #endif // _LIBQI_QI_PATH_HPP_