config/Block: allow moving name and value
This commit is contained in:
parent
e9a4570891
commit
af33a9f4b8
@ -40,9 +40,11 @@ struct BlockParam {
|
|||||||
*/
|
*/
|
||||||
mutable bool used = false;
|
mutable bool used = false;
|
||||||
|
|
||||||
|
template<typename N, typename V>
|
||||||
gcc_nonnull_all
|
gcc_nonnull_all
|
||||||
BlockParam(const char *_name, const char *_value, int _line=-1)
|
BlockParam(N &&_name, V &&_value, int _line=-1) noexcept
|
||||||
:name(_name), value(_value), line(_line) {}
|
:name(std::forward<N>(_name)), value(std::forward<V>(_value)),
|
||||||
|
line(_line) {}
|
||||||
|
|
||||||
int GetIntValue() const;
|
int GetIntValue() const;
|
||||||
|
|
||||||
@ -92,10 +94,12 @@ struct ConfigBlock {
|
|||||||
return block_params.empty();
|
return block_params.empty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<typename N, typename V>
|
||||||
gcc_nonnull_all
|
gcc_nonnull_all
|
||||||
void AddBlockParam(const char *_name, const char *_value,
|
void AddBlockParam(N &&_name, V &&_value, int _line=-1) noexcept {
|
||||||
int _line=-1) {
|
block_params.emplace_back(std::forward<N>(_name),
|
||||||
block_params.emplace_back(_name, _value, _line);
|
std::forward<V>(_value),
|
||||||
|
_line);
|
||||||
}
|
}
|
||||||
|
|
||||||
gcc_nonnull_all gcc_pure
|
gcc_nonnull_all gcc_pure
|
||||||
|
@ -43,7 +43,7 @@ CreateConfiguredDatabase(EventLoop &main_event_loop, EventLoop &io_event_loop,
|
|||||||
listener, *param);
|
listener, *param);
|
||||||
else if (path != nullptr) {
|
else if (path != nullptr) {
|
||||||
ConfigBlock block(path->line);
|
ConfigBlock block(path->line);
|
||||||
block.AddBlockParam("path", path->value.c_str(), path->line);
|
block.AddBlockParam("path", path->value, path->line);
|
||||||
return DatabaseGlobalInit(main_event_loop, io_event_loop,
|
return DatabaseGlobalInit(main_event_loop, io_event_loop,
|
||||||
listener, block);
|
listener, block);
|
||||||
} else {
|
} else {
|
||||||
@ -54,12 +54,12 @@ CreateConfiguredDatabase(EventLoop &main_event_loop, EventLoop &io_event_loop,
|
|||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
||||||
const auto db_file = cache_dir / Path::FromFS(PATH_LITERAL("mpd.db"));
|
const auto db_file = cache_dir / Path::FromFS(PATH_LITERAL("mpd.db"));
|
||||||
const auto db_file_utf8 = db_file.ToUTF8();
|
auto db_file_utf8 = db_file.ToUTF8();
|
||||||
if (db_file_utf8.empty())
|
if (db_file_utf8.empty())
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
||||||
ConfigBlock block;
|
ConfigBlock block;
|
||||||
block.AddBlockParam("path", db_file_utf8.c_str(), -1);
|
block.AddBlockParam("path", std::move(db_file_utf8), -1);
|
||||||
return DatabaseGlobalInit(main_event_loop, io_event_loop,
|
return DatabaseGlobalInit(main_event_loop, io_event_loop,
|
||||||
listener, block);
|
listener, block);
|
||||||
}
|
}
|
||||||
|
@ -135,7 +135,7 @@ try {
|
|||||||
const auto *path = config_get_param(ConfigOption::DB_FILE);
|
const auto *path = config_get_param(ConfigOption::DB_FILE);
|
||||||
ConfigBlock block(path != nullptr ? path->line : -1);
|
ConfigBlock block(path != nullptr ? path->line : -1);
|
||||||
if (path != nullptr)
|
if (path != nullptr)
|
||||||
block.AddBlockParam("path", path->value.c_str(), path->line);
|
block.AddBlockParam("path", path->value, path->line);
|
||||||
|
|
||||||
Database *db = plugin->create(init.GetEventLoop(),
|
Database *db = plugin->create(init.GetEventLoop(),
|
||||||
init.GetEventLoop(),
|
init.GetEventLoop(),
|
||||||
|
Loading…
Reference in New Issue
Block a user