Open-Transactions  0.93.0-ge03d287
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
opentxs::OTDataFolder Class Reference

#include <OTDataFolder.hpp>

Static Public Member Functions

static EXPORT bool Init (const OTString &strThreadContext)
 
static EXPORT bool IsInitialized ()
 
static EXPORT bool Cleanup ()
 
static EXPORT OTString Get ()
 
static EXPORT bool Get (OTString &strDataFolder)
 
static EXPORT bool GetConfigFilePath (OTString &strConfigFilePath)
 

Detailed Description

Definition at line 143 of file OTDataFolder.hpp.

Member Function Documentation

bool opentxs::OTDataFolder::Cleanup ( )
static

Definition at line 296 of file OTDataFolder.cpp.

297 {
298  if (nullptr != pDataFolder) {
299  delete pDataFolder;
300  pDataFolder = nullptr;
301  return true;
302  }
303  else {
304  pDataFolder = nullptr;
305  return false;
306  }
307 }
OTString opentxs::OTDataFolder::Get ( void  )
static

Definition at line 309 of file OTDataFolder.cpp.

310 {
312  OT_FAIL;
313  }
314 
315  OTString strDataFolder = "";
316  if (OTDataFolder::Get(strDataFolder)) {
317  return strDataFolder;
318  }
319  else {
320  strDataFolder = "";
321  return strDataFolder;
322  }
323 }
static EXPORT bool IsInitialized()
#define OT_FAIL
Definition: Assert.hpp:139
static EXPORT OTString Get()
bool opentxs::OTDataFolder::Get ( OTString strDataFolder)
static

Definition at line 325 of file OTDataFolder.cpp.

326 {
327  if (nullptr != pDataFolder) {
328  if (true == pDataFolder->m_bInitialized) {
329  if (pDataFolder->m_strDataFolderPath.Exists()) {
330  strDataFolder = pDataFolder->m_strDataFolderPath;
331  return true;
332  }
333  }
334  }
335 
336  return false;
337 }
EXPORT bool Exists() const
Definition: OTString.cpp:1035
bool opentxs::OTDataFolder::GetConfigFilePath ( OTString strConfigFilePath)
static

Definition at line 339 of file OTDataFolder.cpp.

340 {
341  if (nullptr != pDataFolder) {
342  if (true == pDataFolder->m_bInitialized) {
343  if (pDataFolder->m_strDataConifgFilePath.Exists()) {
344  strConfigFilePath = pDataFolder->m_strDataConifgFilePath;
345  return true;
346  }
347  }
348  }
349 
350  return false;
351 }
EXPORT bool Exists() const
Definition: OTString.cpp:1035
bool opentxs::OTDataFolder::Init ( const OTString strThreadContext)
static

Definition at line 167 of file OTDataFolder.cpp.

168 {
169  if (nullptr != pDataFolder)
170  return true; // we already have a data dir setup.
171 
172  if (!strThreadContext.Exists()) {
173  otErr << __FUNCTION__ << ": Null: "
174  << "strThreadContext"
175  << " passed in!\n";
176  OT_FAIL;
177  }
178  if (3 > strThreadContext.GetLength()) {
179  otErr << __FUNCTION__ << ": Too Short: "
180  << "strThreadContext"
181  << " !\n";
182  OT_FAIL;
183  }
184 
185  pDataFolder = new OTDataFolder; // make the new instance
186 
187  pDataFolder->m_bInitialized = false;
188 
189  // setup the config instance.
190  OTSettings* pSettings(new OTSettings(OTPaths::GlobalConfigFile()));
191  pSettings->Reset();
192  if (!pSettings->Load()) return false;
193 
194  // setup the RelativeKey
195  OTString l_strRelativeKey("");
196  l_strRelativeKey.Format("%s%s", strThreadContext.Get(),
198 
199  bool l_IsRelative(false), l_Exist(false);
200  OTString l_strFolderName(""), l_strDataConifgFilename("");
201 
202  // check the config for an existing configuration.
203  if (!pSettings->Check_bool("data_path", l_strRelativeKey, l_IsRelative,
204  l_Exist)) {
205  return false;
206  } // is data folder relative
207 
208  if (l_Exist) {
209  if (!pSettings->Check_str("data_path", strThreadContext,
210  l_strFolderName, l_Exist)) {
211  return false;
212  } // what is the data folder
213 
214  if (l_Exist) {
215  if (!pSettings->Check_str("data_config", strThreadContext,
216  l_strDataConifgFilename, l_Exist)) {
217  return false;
218  } // what is config file name
219 
220  if (l_Exist) {
221  if (l_IsRelative) // data folder path
222  {
223  if (!OTPaths::AppendFolder(pDataFolder->m_strDataFolderPath,
225  l_strFolderName)) {
226  return false;
227  }
228  }
229  else {
230  pDataFolder->m_strDataFolderPath = l_strFolderName;
231  }
232 
233  // data config file path.
234  if (!OTPaths::AppendFile(pDataFolder->m_strDataConifgFilePath,
236  l_strDataConifgFilename)) {
237  return false;
238  }
239 
240  pDataFolder->m_bInitialized = true;
241  return true;
242  }
243  }
244  }
245 
246  // if we get here we do not have a valid config, lets set one.
247 
248  // setup the default conifg file-name;
249  l_strFolderName.Format("%s%s", strThreadContext.Get(), DATA_FOLDER_EXT);
250  l_strDataConifgFilename.Format("%s%s", strThreadContext.Get(),
252 
253  if (!pSettings->Set_bool("data_path", l_strRelativeKey, true, l_Exist)) {
254  return false;
255  }
256  if (!pSettings->Set_str("data_path", strThreadContext, l_strFolderName,
257  l_Exist)) {
258  return false;
259  }
260  if (!pSettings->Set_str("data_config", strThreadContext,
261  l_strDataConifgFilename, l_Exist)) {
262  return false;
263  }
264 
265  if (!OTPaths::AppendFolder(pDataFolder->m_strDataFolderPath,
266  OTPaths::AppDataFolder(), l_strFolderName)) {
267  return false;
268  }
269  if (!OTPaths::AppendFile(pDataFolder->m_strDataConifgFilePath,
271  l_strDataConifgFilename)) {
272  return false;
273  }
274 
275  // save config
276  if (!pSettings->Save()) return false;
277  pSettings->Reset();
278 
279  if (nullptr != pSettings) delete pSettings;
280  pSettings = nullptr;
281 
282  // have set the default dir, now returning true;
283 
284  pDataFolder->m_bInitialized = true;
285  return true;
286 }
#define DATA_FOLDER_EXT
#define CONFIG_FILE_EXT
static EXPORT const OTString & AppDataFolder()
Definition: OTPaths.cpp:254
static EXPORT bool AppendFolder(OTString &out_strPath, const OTString &strBasePath, const OTString &strFolderName)
Definition: OTPaths.cpp:1212
#define OT_FAIL
Definition: Assert.hpp:139
OTLOG_IMPORT OTLogStream otErr
#define OT_CONFIG_ISRELATIVE
static EXPORT bool AppendFile(OTString &out_strPath, const OTString &strBasePath, const OTString &strFileName)
Definition: OTPaths.cpp:1245
static EXPORT const OTString & GlobalConfigFile()
Definition: OTPaths.cpp:286
bool opentxs::OTDataFolder::IsInitialized ( )
static

Definition at line 288 of file OTDataFolder.cpp.

289 {
290  if (nullptr == pDataFolder)
291  return false; // we already have a data dir setup.
292 
293  return pDataFolder->m_bInitialized;
294 }

The documentation for this class was generated from the following files: