Make json_callbacks a static class member
This commit is contained in:
@@ -3,9 +3,8 @@
|
|||||||
#include <charconv>
|
#include <charconv>
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
|
|
||||||
namespace {
|
|
||||||
// Global callbacks for JSON parsing
|
// Global callbacks for JSON parsing
|
||||||
const WeaselJsonCallbacks json_callbacks = {
|
const WeaselJsonCallbacks CommitRequest::json_callbacks = {
|
||||||
.on_begin_object = CommitRequest::on_begin_object,
|
.on_begin_object = CommitRequest::on_begin_object,
|
||||||
.on_end_object = CommitRequest::on_end_object,
|
.on_end_object = CommitRequest::on_end_object,
|
||||||
.on_string_data = CommitRequest::on_string_data,
|
.on_string_data = CommitRequest::on_string_data,
|
||||||
@@ -17,6 +16,8 @@ const WeaselJsonCallbacks json_callbacks = {
|
|||||||
.on_false_literal = CommitRequest::on_false_literal,
|
.on_false_literal = CommitRequest::on_false_literal,
|
||||||
.on_null_literal = CommitRequest::on_null_literal,
|
.on_null_literal = CommitRequest::on_null_literal,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
namespace {
|
||||||
// Base64 decoding table
|
// Base64 decoding table
|
||||||
constexpr std::array<int, 256> make_base64_decode_table() {
|
constexpr std::array<int, 256> make_base64_decode_table() {
|
||||||
std::array<int, 256> table{};
|
std::array<int, 256> table{};
|
||||||
@@ -387,8 +388,6 @@ bool CommitRequest::parse_json(std::string_view json_str) {
|
|||||||
|
|
||||||
bool CommitRequest::begin_streaming_parse() {
|
bool CommitRequest::begin_streaming_parse() {
|
||||||
reset();
|
reset();
|
||||||
|
|
||||||
json_parser_ = WeaselJsonParser_create(64, &json_callbacks, this, 0);
|
|
||||||
return json_parser_ != nullptr;
|
return json_parser_ != nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -440,4 +439,4 @@ CommitRequest::ParseStatus CommitRequest::finish_streaming_parse() {
|
|||||||
parser_context_.parse_error = true;
|
parser_context_.parse_error = true;
|
||||||
return ParseStatus::Error;
|
return ParseStatus::Error;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -103,7 +103,9 @@ private:
|
|||||||
std::vector<Precondition, ArenaStlAllocator<Precondition>> preconditions_;
|
std::vector<Precondition, ArenaStlAllocator<Precondition>> preconditions_;
|
||||||
std::vector<Operation, ArenaStlAllocator<Operation>> operations_;
|
std::vector<Operation, ArenaStlAllocator<Operation>> operations_;
|
||||||
ParserContext parser_context_;
|
ParserContext parser_context_;
|
||||||
WeaselJsonParser *json_parser_ = nullptr;
|
WeaselJsonParser *json_parser_ =
|
||||||
|
WeaselJsonParser_create(64, &json_callbacks, this, 0);
|
||||||
|
static const WeaselJsonCallbacks json_callbacks;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user