refactor: Replace FlagsOfKnownArg with GetArgFlags
Rename suggested by João Barbosa <joao.paulo.barbosa@gmail.com>
https://github.com/bitcoin/bitcoin/pull/16545#issuecomment-519048000
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 7f40528cd5
https://github.com/bitcoin/bitcoin/pull/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 (https://github.com/bitcoin/bitcoin/pull/16545)
This commit does not change behavior.
This commit is contained in:
1 parent
57e8b7a727
commit
dc0f148074
2 files changed
+10
-10
No files matched your search
+7
-7
@@ -326,9 +326,9 @@ bool ArgsManager::ParseParameters(int argc, const char* const argv[], std::strin
|
|||||||
key.erase(0, 1);
|
key.erase(0, 1);
|
||||||
std::string section;
|
std::string section;
|
||||||
util::SettingsValue value = InterpretOption(section, key, val);
|
util::SettingsValue value = InterpretOption(section, key, val);
|
||||||
const unsigned int flags = FlagsOfKnownArg(key);
|
Optional<unsigned int> flags = GetArgFlags('-' + key);
|
||||||
if (flags) {
|
if (flags) {
|
||||||
if (!CheckValid(key, value, flags, error)) {
|
if (!CheckValid(key, value, *flags, error)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// Weird behavior preserved for backwards compatibility: command
|
// Weird behavior preserved for backwards compatibility: command
|
||||||
@@ -355,16 +355,16 @@ bool ArgsManager::ParseParameters(int argc, const char* const argv[], std::strin
|
|||||||
return success;
|
return success;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int ArgsManager::FlagsOfKnownArg(const std::string& key) const
|
Optional<unsigned int> ArgsManager::GetArgFlags(const std::string& name) const
|
||||||
{
|
{
|
||||||
LOCK(cs_args);
|
LOCK(cs_args);
|
||||||
for (const auto& arg_map : m_available_args) {
|
for (const auto& arg_map : m_available_args) {
|
||||||
const auto search = arg_map.second.find('-' + key);
|
const auto search = arg_map.second.find(name);
|
||||||
if (search != arg_map.second.end()) {
|
if (search != arg_map.second.end()) {
|
||||||
return search->second.m_flags;
|
return search->second.m_flags;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return ArgsManager::NONE;
|
return nullopt;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<std::string> ArgsManager::GetArgs(const std::string& strArg) const
|
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
|
|||||||
std::string section;
|
std::string section;
|
||||||
std::string key = option.first;
|
std::string key = option.first;
|
||||||
util::SettingsValue value = InterpretOption(section, key, option.second);
|
util::SettingsValue value = InterpretOption(section, key, option.second);
|
||||||
const unsigned int flags = FlagsOfKnownArg(key);
|
Optional<unsigned int> flags = GetArgFlags('-' + key);
|
||||||
if (flags) {
|
if (flags) {
|
||||||
if (!CheckValid(key, value, flags, error)) {
|
if (!CheckValid(key, value, *flags, error)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
m_settings.ro_config[section][key].push_back(value);
|
m_settings.ro_config[section][key].push_back(value);
|
||||||
|
|||||||
+3
-3
@@ -19,6 +19,7 @@
|
|||||||
#include <compat/assumptions.h>
|
#include <compat/assumptions.h>
|
||||||
#include <fs.h>
|
#include <fs.h>
|
||||||
#include <logging.h>
|
#include <logging.h>
|
||||||
|
#include <optional.h>
|
||||||
#include <sync.h>
|
#include <sync.h>
|
||||||
#include <tinyformat.h>
|
#include <tinyformat.h>
|
||||||
#include <util/memory.h>
|
#include <util/memory.h>
|
||||||
@@ -132,7 +133,6 @@ class ArgsManager
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
enum Flags {
|
enum Flags {
|
||||||
NONE = 0x00,
|
|
||||||
// Boolean options can accept negation syntax -noOPTION or -noOPTION=1
|
// Boolean options can accept negation syntax -noOPTION or -noOPTION=1
|
||||||
ALLOW_BOOL = 0x01,
|
ALLOW_BOOL = 0x01,
|
||||||
ALLOW_INT = 0x02,
|
ALLOW_INT = 0x02,
|
||||||
@@ -296,9 +296,9 @@ public:
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Return Flags for known arg.
|
* Return Flags for known arg.
|
||||||
* Return ArgsManager::NONE for unknown arg.
|
* Return nullopt for unknown arg.
|
||||||
*/
|
*/
|
||||||
unsigned int FlagsOfKnownArg(const std::string& key) const;
|
Optional<unsigned int> GetArgFlags(const std::string& name) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern ArgsManager gArgs;
|
extern ArgsManager gArgs;
|
||||||
|
|||||||
Reference in new issue
Block a user