All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Environment.hpp
Go to the documentation of this file.
1 /*
2 
3  This file is part of OpenFLUID software
4  Copyright(c) 2007, INRA - Montpellier SupAgro
5 
6 
7  == GNU General Public License Usage ==
8 
9  OpenFLUID is free software: you can redistribute it and/or modify
10  it under the terms of the GNU General Public License as published by
11  the Free Software Foundation, either version 3 of the License, or
12  (at your option) any later version.
13 
14  OpenFLUID is distributed in the hope that it will be useful,
15  but WITHOUT ANY WARRANTY; without even the implied warranty of
16  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  GNU General Public License for more details.
18 
19  You should have received a copy of the GNU General Public License
20  along with OpenFLUID. If not, see <http://www.gnu.org/licenses/>.
21 
22 
23  == Other Usage ==
24 
25  Other Usage means a use of OpenFLUID that is inconsistent with the GPL
26  license, and requires a written agreement between You and INRA.
27  Licensees for Other Usage of OpenFLUID may use this file in accordance
28  with the terms contained in the written agreement between You and INRA.
29 
30 */
31 
32 /**
33  @file Environment.hpp
34 
35  @author Jean-Christophe FABRE <jean-christophe.fabre@supagro.inra.fr>
36 */
37 
38 
39 #ifndef __OPENFLUID_BASE_ENVIRONMENT_HPP__
40 #define __OPENFLUID_BASE_ENVIRONMENT_HPP__
41 
42 
43 #include <string>
44 #include <vector>
45 
46 #include <openfluid/dllexport.hpp>
47 
48 
49 namespace openfluid { namespace base {
50 
51 
53 {
54  private:
55 
56  Environment(Environment const&) = delete;
57 
58  void operator=(Environment const&) = delete;
59 
60  static bool m_Initialized;
61 
62 
63  protected:
64 
65  static std::string m_SystemArch;
66 
67  static std::string m_HostName;
68 
69  static std::string m_UserName;
70 
71  static std::string m_Version;
72 
73  static std::string m_VersionFull;
74 
75  static std::string m_VersionMajorMinor;
76 
77  static std::string m_InstallPrefix;
78 
79  static std::string m_TempDir;
80 
81  static std::string m_UserHomeDir;
82 
83  static std::string m_UserDataDir;
84 
85  static std::string m_ConfigFile;
86 
87  static std::vector<std::string> m_DefaultSimulatorsDirs;
88 
89  static std::vector<std::string> m_ExtraSimulatorsDirs;
90 
91  static std::vector<std::string> m_DefaultObserversDirs;
92 
93  static std::vector<std::string> m_ExtraObserversDirs;
94 
95  static std::vector<std::string> m_DefaultBuilderextsDirs;
96 
97  static std::vector<std::string> m_ExtraBuilderextsDirs;
98 
99  static std::string m_ProvidedExamplesDir;
100 
101  static std::string m_UserExamplesDir;
102 
103  static std::string m_MarketBagDir;
104 
105  static std::string m_MarketBagVersionDir;
106 
107  static std::string m_MarketBagSimulatorsDir;
108 
109  static std::string m_MarketBagObserversDir;
110 
111  static std::string m_MarketBagBuilderextsDir;
112 
113  static std::string m_MarketBagDataDir;
114 
115  static std::string m_MarketBagBinSubDir;
116 
117  static std::string m_MarketBagSrcSubDir;
118 
119  static std::string m_TranslationsDir;
120 
121  static std::string m_CommonResourcesDir;
122 
123  static std::string m_AppsResourcesDir;
124 
125  static int m_IdealThreadCount;
126 
128  { }
129 
130  static std::string getWareFullPath(const std::vector<std::string>& Dirs, const std::string& Filename);
131 
132 
133  public:
134 
135  static void init();
136 
137  static std::string getHostName()
138  { return m_HostName; }
139 
140  static std::string getSystemArch()
141  { return m_SystemArch; }
142 
143  static int getIdealThreadCount()
144  { return m_IdealThreadCount; }
145 
146  static std::string getUserName()
147  { return m_UserName; }
148 
149  static std::string getVersion()
150  { return m_Version; }
151 
152  static std::string getVersionFull()
153  { return m_VersionFull; }
154 
155  static std::string getVersionMajorMinor()
156  { return m_VersionMajorMinor; }
157 
158  static std::string getTempDir()
159  { return m_TempDir; }
160 
161  static std::string getInstallPrefix()
162  { return m_InstallPrefix; }
163 
164  static std::string getUserHomeDir()
165  { return m_UserHomeDir; }
166 
167  static std::string getConfigFile()
168  { return m_ConfigFile; }
169 
170  static std::string getUserDataDir()
171  { return m_UserDataDir; }
172 
173  static std::string getUserDataFullPath(const std::string& Path)
174  { return m_UserDataDir + "/" + Path; }
175 
176  static std::string getUserExamplesDir()
177  { return m_UserExamplesDir; }
178 
179  static void prepareUserDataDirectory();
180 
181  static std::string getTranslationsDir()
182  { return m_TranslationsDir; }
183 
184  static std::string getCommonResourcesDir()
185  { return m_CommonResourcesDir; }
186 
187  static std::string getCommonResourcesFullPath(const std::string& Path)
188  { return m_CommonResourcesDir + "/" + Path; }
189 
190  static std::string getAppResourcesDir(const std::string& AppName)
191  { return m_AppsResourcesDir + "/" + AppName; }
192 
193  static std::string getAppResourcesFullPath(const std::string& AppName, const std::string& Path)
194  { return getAppResourcesDir(AppName) + "/" + Path; }
195 
196  static std::vector<std::string> getSimulatorsDirs();
197 
198  static std::vector<std::string> getDefaultSimulatorsDirs()
199  { return m_DefaultSimulatorsDirs; }
200 
201  static std::vector<std::string> getExtraSimulatorsDirs()
202  { return m_ExtraSimulatorsDirs; }
203 
204  static void addExtraSimulatorsDirs(const std::string& Paths);
205 
206  static void resetExtraSimulatorsDirs();
207 
208  static std::string getSimulatorFullPath(const std::string& Filename);
209 
210  static std::vector<std::string> getObserversDirs();
211 
212  static std::vector<std::string> getDefaultObserversDirs()
213  { return m_DefaultObserversDirs; }
214 
215  static std::vector<std::string> getExtraObserversDirs()
216  { return m_ExtraObserversDirs; }
217 
218  static void addExtraObserversDirs(const std::string& Paths);
219 
220  static void resetExtraObserversDirs();
221 
222  static std::string getObserverFullPath(const std::string& Filename);
223 
224  static std::vector<std::string> getBuilderextsDirs();
225 
226  static std::vector<std::string> getDefaultBuilderextsDirs()
227  { return m_DefaultBuilderextsDirs; }
228 
229  static std::vector<std::string> getExtraBuilderextsDirs()
230  { return m_ExtraBuilderextsDirs; }
231 
232  static void addExtraBuilderextsDirs(const std::string& Paths);
233 
234  static void resetExtraBuilderextsDirs();
235 
236  static std::string getBuilderextFullPath(const std::string& Filename);
237 
238  static std::string getMarketBagBinSubDir()
239  { return m_MarketBagBinSubDir; }
240 
241  static std::string getMarketBagBuilderextsDir()
242  { return m_MarketBagBuilderextsDir; }
243 
244  static std::string getMarketBagDataDir()
245  { return m_MarketBagDataDir; }
246 
247  static std::string getMarketBagDir()
248  { return m_MarketBagDir; }
249 
250  static std::string getMarketBagObserversDir()
251  { return m_MarketBagObserversDir; }
252 
253  static std::string getMarketBagSimulatorsDir()
254  { return m_MarketBagSimulatorsDir; }
255 
256  static std::string getMarketBagSrcSubDir()
257  { return m_MarketBagSrcSubDir; }
258 
259  static std::string getMarketBagVersionDir()
260  { return m_MarketBagVersionDir; }
261 
262  static std::string getProvidedExamplesDir()
263  { return m_ProvidedExamplesDir; }
264 };
265 
266 
267 } } // namespaces
268 
269 
270 #endif /* __OPENFLUID_BASE_ENVIRONMENT_HPP__ */
static std::string m_MarketBagDataDir
Definition: Environment.hpp:113
static std::vector< std::string > getDefaultBuilderextsDirs()
Definition: Environment.hpp:226
static std::string getCommonResourcesDir()
Definition: Environment.hpp:184
static std::string getTempDir()
Definition: Environment.hpp:158
static std::string m_TranslationsDir
Definition: Environment.hpp:119
static std::string m_UserName
Definition: Environment.hpp:69
Definition: Environment.hpp:52
static std::string m_ConfigFile
Definition: Environment.hpp:85
static std::string getMarketBagBuilderextsDir()
Definition: Environment.hpp:241
static std::string m_UserDataDir
Definition: Environment.hpp:83
static std::string m_CommonResourcesDir
Definition: Environment.hpp:121
static std::string m_MarketBagDir
Definition: Environment.hpp:103
static std::string m_MarketBagSimulatorsDir
Definition: Environment.hpp:107
static std::string getMarketBagDir()
Definition: Environment.hpp:247
static std::string getInstallPrefix()
Definition: Environment.hpp:161
static std::vector< std::string > m_DefaultBuilderextsDirs
Definition: Environment.hpp:95
static std::string m_MarketBagBinSubDir
Definition: Environment.hpp:115
static std::string m_Version
Definition: Environment.hpp:71
static std::string getVersionFull()
Definition: Environment.hpp:152
static std::vector< std::string > m_ExtraObserversDirs
Definition: Environment.hpp:93
static std::vector< std::string > getDefaultObserversDirs()
Definition: Environment.hpp:212
static std::string getUserHomeDir()
Definition: Environment.hpp:164
static std::vector< std::string > m_ExtraBuilderextsDirs
Definition: Environment.hpp:97
static std::string m_UserExamplesDir
Definition: Environment.hpp:101
static std::string getMarketBagSrcSubDir()
Definition: Environment.hpp:256
static std::string m_InstallPrefix
Definition: Environment.hpp:77
static std::string m_MarketBagObserversDir
Definition: Environment.hpp:109
#define OPENFLUID_API
Definition: dllexport.hpp:87
static std::string getUserName()
Definition: Environment.hpp:146
static int getIdealThreadCount()
Definition: Environment.hpp:143
static std::string m_TempDir
Definition: Environment.hpp:79
static int m_IdealThreadCount
Definition: Environment.hpp:125
static std::string m_HostName
Definition: Environment.hpp:67
static std::string getConfigFile()
Definition: Environment.hpp:167
static std::string getVersion()
Definition: Environment.hpp:149
static std::vector< std::string > m_DefaultSimulatorsDirs
Definition: Environment.hpp:87
static std::vector< std::string > m_ExtraSimulatorsDirs
Definition: Environment.hpp:89
static std::string getAppResourcesDir(const std::string &AppName)
Definition: Environment.hpp:190
static std::string getUserExamplesDir()
Definition: Environment.hpp:176
static std::string m_SystemArch
Definition: Environment.hpp:65
static std::vector< std::string > getDefaultSimulatorsDirs()
Definition: Environment.hpp:198
static std::string getSystemArch()
Definition: Environment.hpp:140
static std::vector< std::string > getExtraBuilderextsDirs()
Definition: Environment.hpp:229
static std::string getMarketBagVersionDir()
Definition: Environment.hpp:259
static std::string getCommonResourcesFullPath(const std::string &Path)
Definition: Environment.hpp:187
Environment()
Definition: Environment.hpp:127
static std::string m_MarketBagBuilderextsDir
Definition: Environment.hpp:111
static std::string getTranslationsDir()
Definition: Environment.hpp:181
static std::vector< std::string > m_DefaultObserversDirs
Definition: Environment.hpp:91
static std::string m_MarketBagSrcSubDir
Definition: Environment.hpp:117
static std::string m_VersionMajorMinor
Definition: Environment.hpp:75
static std::string getMarketBagObserversDir()
Definition: Environment.hpp:250
static std::string getVersionMajorMinor()
Definition: Environment.hpp:155
static std::string m_MarketBagVersionDir
Definition: Environment.hpp:105
static std::string m_AppsResourcesDir
Definition: Environment.hpp:123
static std::string getAppResourcesFullPath(const std::string &AppName, const std::string &Path)
Definition: Environment.hpp:193
static std::string getMarketBagSimulatorsDir()
Definition: Environment.hpp:253
static std::string getMarketBagDataDir()
Definition: Environment.hpp:244
static std::string getProvidedExamplesDir()
Definition: Environment.hpp:262
static std::string getMarketBagBinSubDir()
Definition: Environment.hpp:238
static std::string m_UserHomeDir
Definition: Environment.hpp:81
static std::string getUserDataFullPath(const std::string &Path)
Definition: Environment.hpp:173
static std::string m_ProvidedExamplesDir
Definition: Environment.hpp:99
static std::vector< std::string > getExtraObserversDirs()
Definition: Environment.hpp:215
static std::string getHostName()
Definition: Environment.hpp:137
static std::string getUserDataDir()
Definition: Environment.hpp:170
static std::vector< std::string > getExtraSimulatorsDirs()
Definition: Environment.hpp:201
static std::string m_VersionFull
Definition: Environment.hpp:73