mirror of
https://github.com/matrix-construct/construct
synced 2024-12-27 07:54:05 +01:00
ircd::conf: Add allocated string get() overloads.
This commit is contained in:
parent
8353d0a7e9
commit
1fa5ebc415
2 changed files with 28 additions and 0 deletions
|
@ -61,6 +61,7 @@ namespace ircd::conf
|
||||||
bool exists(const string_view &key);
|
bool exists(const string_view &key);
|
||||||
bool persists(const string_view &key);
|
bool persists(const string_view &key);
|
||||||
string_view get(const string_view &key, const mutable_buffer &out);
|
string_view get(const string_view &key, const mutable_buffer &out);
|
||||||
|
std::string get(const string_view &key);
|
||||||
bool set(const string_view &key, const string_view &value);
|
bool set(const string_view &key, const string_view &value);
|
||||||
bool set(std::nothrow_t, const string_view &key, const string_view &value);
|
bool set(std::nothrow_t, const string_view &key, const string_view &value);
|
||||||
bool reset(std::nothrow_t, const string_view &key);
|
bool reset(std::nothrow_t, const string_view &key);
|
||||||
|
@ -88,6 +89,7 @@ struct ircd::conf::item<void>
|
||||||
public:
|
public:
|
||||||
virtual size_t size() const = 0;
|
virtual size_t size() const = 0;
|
||||||
string_view get(const mutable_buffer &) const;
|
string_view get(const mutable_buffer &) const;
|
||||||
|
std::string get() const;
|
||||||
bool set(const string_view &);
|
bool set(const string_view &);
|
||||||
|
|
||||||
item(const json::members &, conf::set_cb);
|
item(const json::members &, conf::set_cb);
|
||||||
|
|
26
ircd/conf.cc
26
ircd/conf.cc
|
@ -109,6 +109,21 @@ catch(const std::out_of_range &e)
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string
|
||||||
|
ircd::conf::get(const string_view &key)
|
||||||
|
try
|
||||||
|
{
|
||||||
|
const auto &item(*items.at(key));
|
||||||
|
return item.get();
|
||||||
|
}
|
||||||
|
catch(const std::out_of_range &e)
|
||||||
|
{
|
||||||
|
throw not_found
|
||||||
|
{
|
||||||
|
"Conf item '%s' is not available", key
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
ircd::string_view
|
ircd::string_view
|
||||||
ircd::conf::get(const string_view &key,
|
ircd::conf::get(const string_view &key,
|
||||||
const mutable_buffer &out)
|
const mutable_buffer &out)
|
||||||
|
@ -226,6 +241,17 @@ ircd::conf::item<void>::set(const string_view &val)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string
|
||||||
|
ircd::conf::item<void>::get()
|
||||||
|
const
|
||||||
|
{
|
||||||
|
return ircd::string(size(), [this]
|
||||||
|
(const mutable_buffer &buf)
|
||||||
|
{
|
||||||
|
return get(buf);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
ircd::string_view
|
ircd::string_view
|
||||||
ircd::conf::item<void>::get(const mutable_buffer &buf)
|
ircd::conf::item<void>::get(const mutable_buffer &buf)
|
||||||
const
|
const
|
||||||
|
|
Loading…
Reference in a new issue