Skip to content

Commit dc0f148

Browse files
committed
refactor: Replace FlagsOfKnownArg with GetArgFlags
Rename suggested by João Barbosa <[email protected]> bitcoin/bitcoin#16545 (comment) This also gets rid of ArgsManager::NONE constant, which was an implementation detail not meant to be used by ArgsManager callers. Finally this reverts a change from 7f40528 bitcoin/bitcoin#15934 adding "-" characters to argument names. Better for GetArgFlags to require "-" prefixes for consistency with other ArgsManager methods, and to be more efficient later when GetArg functions need to call GetArgFlags (bitcoin/bitcoin#16545) This commit does not change behavior.
1 parent 57e8b7a commit dc0f148

File tree

2 files changed

+10
-10
lines changed

2 files changed

+10
-10
lines changed

src/util/system.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -326,9 +326,9 @@ bool ArgsManager::ParseParameters(int argc, const char* const argv[], std::strin
326326
key.erase(0, 1);
327327
std::string section;
328328
util::SettingsValue value = InterpretOption(section, key, val);
329-
const unsigned int flags = FlagsOfKnownArg(key);
329+
Optional<unsigned int> flags = GetArgFlags('-' + key);
330330
if (flags) {
331-
if (!CheckValid(key, value, flags, error)) {
331+
if (!CheckValid(key, value, *flags, error)) {
332332
return false;
333333
}
334334
// Weird behavior preserved for backwards compatibility: command
@@ -355,16 +355,16 @@ bool ArgsManager::ParseParameters(int argc, const char* const argv[], std::strin
355355
return success;
356356
}
357357

358-
unsigned int ArgsManager::FlagsOfKnownArg(const std::string& key) const
358+
Optional<unsigned int> ArgsManager::GetArgFlags(const std::string& name) const
359359
{
360360
LOCK(cs_args);
361361
for (const auto& arg_map : m_available_args) {
362-
const auto search = arg_map.second.find('-' + key);
362+
const auto search = arg_map.second.find(name);
363363
if (search != arg_map.second.end()) {
364364
return search->second.m_flags;
365365
}
366366
}
367-
return ArgsManager::NONE;
367+
return nullopt;
368368
}
369369

370370
std::vector<std::string> ArgsManager::GetArgs(const std::string& strArg) const
@@ -745,9 +745,9 @@ bool ArgsManager::ReadConfigStream(std::istream& stream, const std::string& file
745745
std::string section;
746746
std::string key = option.first;
747747
util::SettingsValue value = InterpretOption(section, key, option.second);
748-
const unsigned int flags = FlagsOfKnownArg(key);
748+
Optional<unsigned int> flags = GetArgFlags('-' + key);
749749
if (flags) {
750-
if (!CheckValid(key, value, flags, error)) {
750+
if (!CheckValid(key, value, *flags, error)) {
751751
return false;
752752
}
753753
m_settings.ro_config[section][key].push_back(value);

src/util/system.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
#include <compat/assumptions.h>
2020
#include <fs.h>
2121
#include <logging.h>
22+
#include <optional.h>
2223
#include <sync.h>
2324
#include <tinyformat.h>
2425
#include <util/memory.h>
@@ -132,7 +133,6 @@ class ArgsManager
132133
{
133134
public:
134135
enum Flags {
135-
NONE = 0x00,
136136
// Boolean options can accept negation syntax -noOPTION or -noOPTION=1
137137
ALLOW_BOOL = 0x01,
138138
ALLOW_INT = 0x02,
@@ -296,9 +296,9 @@ class ArgsManager
296296

297297
/**
298298
* Return Flags for known arg.
299-
* Return ArgsManager::NONE for unknown arg.
299+
* Return nullopt for unknown arg.
300300
*/
301-
unsigned int FlagsOfKnownArg(const std::string& key) const;
301+
Optional<unsigned int> GetArgFlags(const std::string& name) const;
302302
};
303303

304304
extern ArgsManager gArgs;

0 commit comments

Comments
 (0)