169 if (
nullptr != pDataFolder)
172 if (!strThreadContext.Exists()) {
173 otErr << __FUNCTION__ <<
": Null: "
174 <<
"strThreadContext"
178 if (3 > strThreadContext.GetLength()) {
179 otErr << __FUNCTION__ <<
": Too Short: "
180 <<
"strThreadContext"
185 pDataFolder =
new OTDataFolder;
187 pDataFolder->m_bInitialized =
false;
192 if (!pSettings->Load())
return false;
195 OTString l_strRelativeKey(
"");
196 l_strRelativeKey.Format(
"%s%s", strThreadContext.Get(),
199 bool l_IsRelative(
false), l_Exist(
false);
200 OTString l_strFolderName(
""), l_strDataConifgFilename(
"");
203 if (!pSettings->Check_bool(
"data_path", l_strRelativeKey, l_IsRelative,
209 if (!pSettings->Check_str(
"data_path", strThreadContext,
210 l_strFolderName, l_Exist)) {
215 if (!pSettings->Check_str(
"data_config", strThreadContext,
216 l_strDataConifgFilename, l_Exist)) {
230 pDataFolder->m_strDataFolderPath = l_strFolderName;
236 l_strDataConifgFilename)) {
240 pDataFolder->m_bInitialized =
true;
249 l_strFolderName.Format(
"%s%s", strThreadContext.Get(),
DATA_FOLDER_EXT);
250 l_strDataConifgFilename.Format(
"%s%s", strThreadContext.Get(),
253 if (!pSettings->Set_bool(
"data_path", l_strRelativeKey,
true, l_Exist)) {
256 if (!pSettings->Set_str(
"data_path", strThreadContext, l_strFolderName,
260 if (!pSettings->Set_str(
"data_config", strThreadContext,
261 l_strDataConifgFilename, l_Exist)) {
271 l_strDataConifgFilename)) {
276 if (!pSettings->Save())
return false;
279 if (
nullptr != pSettings)
delete pSettings;
284 pDataFolder->m_bInitialized =
true;
static EXPORT const OTString & AppDataFolder()
static EXPORT bool AppendFolder(OTString &out_strPath, const OTString &strBasePath, const OTString &strFolderName)
OTLOG_IMPORT OTLogStream otErr
#define OT_CONFIG_ISRELATIVE
static EXPORT bool AppendFile(OTString &out_strPath, const OTString &strBasePath, const OTString &strFileName)
static EXPORT const OTString & GlobalConfigFile()