mirror of
https://github.com/rad4day/Waybar.git
synced 2023-12-21 10:22:59 +01:00
fix(Workspaces): fix concurrence and move json parser to ipc client
This commit is contained in:
@ -7,13 +7,14 @@ namespace waybar::util {
|
||||
struct JsonParser {
|
||||
JsonParser() : reader_(builder_.newCharReader()) {}
|
||||
|
||||
const Json::Value parse(const std::string& data) const {
|
||||
Json::Value root;
|
||||
std::string err;
|
||||
const Json::Value parse(const std::string& data, std::size_t size = 0) const {
|
||||
Json::Value root(Json::objectValue);
|
||||
if (data.empty()) {
|
||||
return root;
|
||||
}
|
||||
bool res = reader_->parse(data.c_str(), data.c_str() + data.size(), &root, &err);
|
||||
std::string err;
|
||||
auto data_size = size > 0 ? size : data.size();
|
||||
bool res = reader_->parse(data.c_str(), data.c_str() + data_size, &root, &err);
|
||||
if (!res) throw std::runtime_error(err);
|
||||
return root;
|
||||
}
|
||||
|
Reference in New Issue
Block a user