@@ -592,6 +592,13 @@ bool ArgsManager::WriteSettingsFile(std::vector<std::string>* errors) const
592592 return true ;
593593}
594594
595+ util::SettingsValue ArgsManager::GetPersistentSetting (const std::string& name) const
596+ {
597+ LOCK (cs_args);
598+ return util::GetSetting (m_settings, m_network, name, !UseDefaultSection (" -" + name),
599+ /* ignore_nonpersistent=*/ true , /* get_chain_name=*/ false );
600+ }
601+
595602bool ArgsManager::IsArgNegated (const std::string& strArg) const
596603{
597604 return GetSetting (strArg).isFalse ();
@@ -600,18 +607,33 @@ bool ArgsManager::IsArgNegated(const std::string& strArg) const
600607std::string ArgsManager::GetArg (const std::string& strArg, const std::string& strDefault) const
601608{
602609 const util::SettingsValue value = GetSetting (strArg);
610+ return SettingToString (value, strDefault);
611+ }
612+
613+ std::string SettingToString (const util::SettingsValue& value, const std::string& strDefault)
614+ {
603615 return value.isNull () ? strDefault : value.isFalse () ? " 0" : value.isTrue () ? " 1" : value.isNum () ? value.getValStr () : value.get_str ();
604616}
605617
606618int64_t ArgsManager::GetIntArg (const std::string& strArg, int64_t nDefault) const
607619{
608620 const util::SettingsValue value = GetSetting (strArg);
621+ return SettingToInt (value, nDefault);
622+ }
623+
624+ int64_t SettingToInt (const util::SettingsValue& value, int64_t nDefault)
625+ {
609626 return value.isNull () ? nDefault : value.isFalse () ? 0 : value.isTrue () ? 1 : value.isNum () ? value.getInt <int64_t >() : LocaleIndependentAtoi<int64_t >(value.get_str ());
610627}
611628
612629bool ArgsManager::GetBoolArg (const std::string& strArg, bool fDefault ) const
613630{
614631 const util::SettingsValue value = GetSetting (strArg);
632+ return SettingToBool (value, fDefault );
633+ }
634+
635+ bool SettingToBool (const util::SettingsValue& value, bool fDefault )
636+ {
615637 return value.isNull () ? fDefault : value.isBool () ? value.get_bool () : InterpretBool (value.get_str ());
616638}
617639
@@ -1002,6 +1024,7 @@ std::string ArgsManager::GetChainName() const
10021024 LOCK (cs_args);
10031025 util::SettingsValue value = util::GetSetting (m_settings, /* section= */ " " , SettingName (arg),
10041026 /* ignore_default_section_config= */ false ,
1027+ /* ignore_nonpersistent=*/ false ,
10051028 /* get_chain_name= */ true );
10061029 return value.isNull () ? false : value.isBool () ? value.get_bool () : InterpretBool (value.get_str ());
10071030 };
@@ -1034,7 +1057,8 @@ util::SettingsValue ArgsManager::GetSetting(const std::string& arg) const
10341057{
10351058 LOCK (cs_args);
10361059 return util::GetSetting (
1037- m_settings, m_network, SettingName (arg), !UseDefaultSection (arg), /* get_chain_name= */ false );
1060+ m_settings, m_network, SettingName (arg), !UseDefaultSection (arg),
1061+ /* ignore_nonpersistent=*/ false , /* get_chain_name=*/ false );
10381062}
10391063
10401064std::vector<util::SettingsValue> ArgsManager::GetSettingsList (const std::string& arg) const
0 commit comments