Platform folders  4.2.0
platform_folders.h
1 /*
2 Its is under the MIT license, to encourage reuse by cut-and-paste.
3 
4 The original files are hosted here: https://github.com/sago007/PlatformFolders
5 
6 Copyright (c) 2015 Poul Sander
7 
8 Permission is hereby granted, free of charge, to any person
9 obtaining a copy of this software and associated documentation files
10 (the "Software"), to deal in the Software without restriction,
11 including without limitation the rights to use, copy, modify, merge,
12 publish, distribute, sublicense, and/or sell copies of the Software,
13 and to permit persons to whom the Software is furnished to do so,
14 subject to the following conditions:
15 
16 The above copyright notice and this permission notice shall be
17 included in all copies or substantial portions of the Software.
18 
19 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
20 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
21 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
22 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
23 BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
24 ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
25 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26 SOFTWARE.
27 */
28 
29 #ifndef SAGO_PLATFORM_FOLDERS_H
30 #define SAGO_PLATFORM_FOLDERS_H
31 
32 #include <vector>
33 #include <string>
34 
38 namespace sago {
39 
40 #ifndef DOXYGEN_SHOULD_SKIP_THIS
41 namespace internal {
42 #if !defined(_WIN32) && !defined(__APPLE__)
43 void appendExtraFoldersTokenizer(const char* envName, const char* envValue, std::vector<std::string>& folders);
44 #endif
45 #ifdef _WIN32
46 std::string win32_utf16_to_utf8(const wchar_t* wstr);
47 #endif
48 }
49 #endif //DOXYGEN_SHOULD_SKIP_THIS
50 
61 std::string getDataHome();
62 
73 std::string getConfigHome();
74 
86 std::string getCacheDir();
87 
99 std::string getStateDir();
100 
117 void appendAdditionalDataDirectories(std::vector<std::string>& homes);
118 
135 void appendAdditionalConfigDirectories(std::vector<std::string>& homes);
136 
142 std::string getDesktopFolder();
143 
148 std::string getDocumentsFolder();
149 
154 std::string getDownloadFolder();
155 
161 std::string getDownloadFolder1();
162 
167 std::string getPicturesFolder();
168 
173 std::string getPublicFolder();
174 
179 std::string getMusicFolder();
180 
185 std::string getVideoFolder();
186 
197 std::string getSaveGamesFolder1();
198 
211 std::string getSaveGamesFolder2();
212 
213 #ifndef DOXYGEN_SHOULD_SKIP_THIS
214 
221 class PlatformFolders {
222 public:
223  PlatformFolders();
224  ~PlatformFolders();
230  std::string getDesktopFolder() const;
235  std::string getDocumentsFolder() const;
240  std::string getPicturesFolder() const;
244  std::string getPublicFolder() const;
250  std::string getDownloadFolder1() const;
255  std::string getMusicFolder() const;
260  std::string getVideoFolder() const;
272  std::string getSaveGamesFolder1() const;
273 private:
274  PlatformFolders(const PlatformFolders&);
275  PlatformFolders& operator=(const PlatformFolders&);
276 #if !defined(_WIN32) && !defined(__APPLE__)
277  struct PlatformFoldersData;
278  PlatformFoldersData* data;
279 #endif
280 };
281 
282 #endif // skip doxygen
283 
284 
285 } //namespace sago
286 
287 #endif /* PLATFORM_FOLDERS_H */
Definition: platform_folders.h:38
void appendAdditionalDataDirectories(std::vector< std::string > &homes)
std::string getCacheDir()
std::string getPicturesFolder()
std::string getPublicFolder()
std::string getDownloadFolder()
void appendAdditionalConfigDirectories(std::vector< std::string > &homes)
std::string getDownloadFolder1()
std::string getDataHome()
std::string getVideoFolder()
std::string getStateDir()
std::string getDocumentsFolder()
std::string getConfigHome()
std::string getSaveGamesFolder1()
std::string getDesktopFolder()
std::string getMusicFolder()
std::string getSaveGamesFolder2()