127 void writeLines(std::ostream &os, u32 tab_depth=0)
const;
134 const std::string &
get(
const std::string &name)
const;
135 bool getBool(
const std::string &name)
const;
136 u16
getU16(
const std::string &name)
const;
137 s16
getS16(
const std::string &name)
const;
138 u32
getU32(
const std::string &name)
const;
139 s32
getS32(
const std::string &name)
const;
140 u64
getU64(
const std::string &name)
const;
141 float getFloat(
const std::string &name)
const;
142 v2f getV2F(
const std::string &name)
const;
143 v3f getV3F(
const std::string &name)
const;
145 u32 *flagmask)
const;
151 std::vector<std::string>
getNames()
const;
152 bool exists(
const std::string &name)
const;
160 bool getNoEx(
const std::string &name, std::string &val)
const;
161 bool getFlag(
const std::string &name)
const;
162 bool getU16NoEx(
const std::string &name, u16 &val)
const;
163 bool getS16NoEx(
const std::string &name, s16 &val)
const;
164 bool getS32NoEx(
const std::string &name, s32 &val)
const;
165 bool getU64NoEx(
const std::string &name, u64 &val)
const;
166 bool getFloatNoEx(
const std::string &name,
float &val)
const;
183 bool setEntry(
const std::string &name,
const void *entry,
185 bool set(
const std::string &name,
const std::string &value);
186 bool setDefault(
const std::string &name,
const std::string &value);
188 bool setBool(
const std::string &name,
bool value);
189 bool setS16(
const std::string &name, s16 value);
190 bool setU16(
const std::string &name, u16 value);
191 bool setS32(
const std::string &name, s32 value);
192 bool setU64(
const std::string &name, u64 value);
193 bool setFloat(
const std::string &name,
float value);
194 bool setV2F(
const std::string &name,
v2f value);
195 bool setV3F(
const std::string &name,
v3f value);
196 bool setFlagStr(
const std::string &name, u32 flags,
201 bool remove(
const std::string &name);
223 std::string &name, std::string &value);
229 static std::string
getMultiline(std::istream &is,
size_t *num_lines=NULL);
230 static void printEntry(std::ostream &os,
const std::string &name,
260 static std::unordered_map<std::string, const FlagDesc *>
s_flags;
Definition: settings.h:101
v2f getV2F(const std::string &name) const
Definition: settings.cpp:508
SettingsLayer getLayerType() const
Definition: settings.h:105
bool setGroup(const std::string &name, const Settings &group)
Definition: settings.cpp:829
v3f getV3F(const std::string &name) const
Definition: settings.cpp:519
SettingsCallbackMap m_callbacks
Definition: settings.h:250
Settings(const std::string &end_tag="")
Definition: settings.h:107
std::mutex m_callback_mutex
Definition: settings.h:253
bool getFloatNoEx(const std::string &name, float &val) const
Definition: settings.cpp:685
bool getFlag(const std::string &name) const
Definition: settings.cpp:675
void deregisterChangedCallback(const std::string &name, SettingsChangedCallback cbf, void *userdata=NULL)
Definition: settings.cpp:999
static Settings * createLayer(SettingsLayer sl, const std::string &end_tag="")
Definition: settings.cpp:43
SettingsLayer m_settingslayer
Definition: settings.h:259
bool getV3FNoEx(const std::string &name, v3f &val) const
Definition: settings.cpp:751
void doCallbacks(const std::string &name) const
Definition: settings.cpp:1029
bool setS32(const std::string &name, s32 value)
Definition: settings.cpp:857
u64 getU64(const std::string &name) const
Definition: settings.cpp:498
static std::unordered_map< std::string, const FlagDesc * > s_flags
Definition: settings.h:260
bool getU64NoEx(const std::string &name, u64 &val) const
Definition: settings.cpp:729
~Settings()
Definition: settings.cpp:68
bool readConfigFile(const char *filename)
Definition: settings.cpp:155
bool getS32NoEx(const std::string &name, s32 &val) const
Definition: settings.cpp:718
bool setU16(const std::string &name, u16 value)
Definition: settings.cpp:851
Settings & operator+=(const Settings &other)
bool remove(const std::string &name)
Definition: settings.cpp:922
Settings * getGroup(const std::string &name) const
Definition: settings.cpp:445
bool getS16NoEx(const std::string &name, s16 &val) const
Definition: settings.cpp:707
bool getNoiseParamsFromValue(const std::string &name, NoiseParams &np) const
Definition: settings.cpp:570
bool getGroupNoEx(const std::string &name, Settings *&val) const
Definition: settings.cpp:653
u32 getU32(const std::string &name) const
Definition: settings.cpp:481
s32 getS32(const std::string &name) const
Definition: settings.cpp:486
bool getNoEx(const std::string &name, std::string &val) const
Definition: settings.cpp:664
void writeLines(std::ostream &os, u32 tab_depth=0) const
Definition: settings.cpp:205
bool parseCommandLine(int argc, char *argv[], std::map< std::string, ValueSpec > &allowed_options)
Definition: settings.cpp:354
void registerChangedCallback(const std::string &name, SettingsChangedCallback cbf, void *userdata=NULL)
Definition: settings.cpp:992
static bool checkValueValid(const std::string &value)
Definition: settings.cpp:118
bool setDefault(const std::string &name, const std::string &value)
Definition: settings.cpp:823
void updateNoLock(const Settings &other)
std::vector< std::string > getNames() const
Definition: settings.cpp:636
const SettingsEntry & getEntry(const std::string &name) const
Definition: settings.cpp:428
bool getV2FNoEx(const std::string &name, v2f &val) const
Definition: settings.cpp:740
void clearDefaultsNoLock()
bool updateConfigFile(const char *filename)
Definition: settings.cpp:331
const std::string & get(const std::string &name) const
Definition: settings.cpp:454
SettingsParseEvent parseConfigObject(const std::string &line, std::string &name, std::string &value)
Definition: settings.cpp:942
bool getFlagStrNoEx(const std::string &name, u32 &val, const FlagDesc *flagdesc) const
Definition: settings.cpp:762
bool setBool(const std::string &name, bool value)
Definition: settings.cpp:839
float getFloat(const std::string &name) const
Definition: settings.cpp:492
Settings * getParent() const
Definition: settings.cpp:411
bool set(const std::string &name, const std::string &value)
Definition: settings.cpp:812
static Settings * s_layers[SL_TOTAL_COUNT]
Definition: settings.h:258
static std::string getMultiline(std::istream &is, size_t *num_lines=NULL)
Definition: settings.cpp:129
bool getBool(const std::string &name) const
Definition: settings.cpp:463
static bool checkNameValid(const std::string &name)
Definition: settings.cpp:103
bool setS16(const std::string &name, s16 value)
Definition: settings.cpp:845
bool parseConfigLines(std::istream &is)
Definition: settings.cpp:165
std::string m_end_tag
Definition: settings.h:251
void clearNoLock()
Definition: settings.cpp:970
bool setFloat(const std::string &name, float value)
Definition: settings.cpp:871
bool setEntry(const std::string &name, const void *entry, bool set_group)
Definition: settings.cpp:784
static Settings * getLayer(SettingsLayer sl)
Definition: settings.cpp:61
std::mutex m_mutex
Definition: settings.h:256
bool setNoiseParams(const std::string &name, const NoiseParams &np)
Definition: settings.cpp:905
static void printEntry(std::ostream &os, const std::string &name, const SettingsEntry &entry, u32 tab_depth=0)
Definition: settings.cpp:222
bool exists(const std::string &name) const
Definition: settings.cpp:624
Settings & operator=(const Settings &other)
Definition: settings.cpp:83
void removeSecureSettings()
Definition: settings.cpp:1016
bool getNoiseParams(const std::string &name, NoiseParams &np) const
Definition: settings.cpp:559
bool setV3F(const std::string &name, v3f value)
Definition: settings.cpp:885
u16 getU16(const std::string &name) const
Definition: settings.cpp:469
bool setFlagStr(const std::string &name, u32 flags, const FlagDesc *flagdesc=nullptr, u32 flagmask=U32_MAX)
Definition: settings.cpp:893
bool setV2F(const std::string &name, v2f value)
Definition: settings.cpp:877
bool getU16NoEx(const std::string &name, u16 &val) const
Definition: settings.cpp:696
SettingEntries m_settings
Definition: settings.h:249
u32 getFlagStr(const std::string &name, const FlagDesc *flagdesc, u32 *flagmask) const
Definition: settings.cpp:531
s16 getS16(const std::string &name) const
Definition: settings.cpp:475
bool updateConfigObject(std::istream &is, std::ostream &os, u32 tab_depth=0)
Definition: settings.cpp:245
bool getNoiseParamsFromGroup(const std::string &name, NoiseParams &np) const
Definition: settings.cpp:600
bool setU64(const std::string &name, u64 value)
Definition: settings.cpp:863
const FlagDesc * getFlagDescFallback(const std::string &name) const
Definition: settings.cpp:986
Definition: test_settings.cpp:27
core::vector2d< f32 > v2f
Definition: irr_v2d.h:26
core::vector3df v3f
Definition: irr_v3d.h:26
#define U32_MAX
Definition: irrlichttypes.h:79
static OptionList allowed_options
Definition: main.cpp:119
Settings * g_settings
Definition: settings.cpp:36
std::vector< std::pair< SettingsChangedCallback, void * >> SettingsCallbackList
Definition: settings.h:44
std::unordered_map< std::string, SettingsEntry > SettingEntries
Definition: settings.h:99
SettingsLayer
Definition: settings.h:63
@ SL_GLOBAL
Definition: settings.h:66
@ SL_GAME
Definition: settings.h:65
@ SL_MAP
Definition: settings.h:67
@ SL_DEFAULTS
Definition: settings.h:64
@ SL_TOTAL_COUNT
Definition: settings.h:68
void(* SettingsChangedCallback)(const std::string &name, void *data)
Definition: settings.h:37
std::string g_settings_path
Definition: settings.cpp:37
SettingsParseEvent
Definition: settings.h:53
@ SPE_KVPAIR
Definition: settings.h:57
@ SPE_MULTILINE
Definition: settings.h:60
@ SPE_GROUP
Definition: settings.h:59
@ SPE_INVALID
Definition: settings.h:55
@ SPE_COMMENT
Definition: settings.h:56
@ SPE_END
Definition: settings.h:58
@ SPE_NONE
Definition: settings.h:54
std::unordered_map< std::string, SettingsCallbackList > SettingsCallbackMap
Definition: settings.h:46
ValueType
Definition: settings.h:48
@ VALUETYPE_FLAG
Definition: settings.h:50
@ VALUETYPE_STRING
Definition: settings.h:49
Definition: settings.h:82
std::string value
Definition: settings.h:94
SettingsEntry(const std::string &value_)
Definition: settings.h:85
bool is_group
Definition: settings.h:96
Settings * group
Definition: settings.h:95
SettingsEntry(Settings *group_)
Definition: settings.h:89
Definition: settings.h:71
const char * help
Definition: settings.h:79
ValueSpec(ValueType a_type, const char *a_help=NULL)
Definition: settings.h:72
ValueType type
Definition: settings.h:78