Ledger query infrastructure. (#275)

* Added json ledger query param parser.

* Added initial query response creation.

* Updated client lib.

* Implemented get ledger by seq no.

* Added ledger query execution wrappers.

* Included log record info.

* Fixed empty output hash issue.

* Added bson support.

* Added db file existance check.

* Added requesy/reply tracking for queries in client lib.

* Improved multi connection usage in client lib.

* Added genesis ledger query support.

* Updated naming convention of query result fields.

* Comments.

* Used sqlite bind() for query param.

* Used binary hashes in ledger sqlite db.

* Missing const.
This commit is contained in:
Ravin Perera
2021-03-29 11:20:15 +05:30
committed by GitHub
parent 44fa3134ea
commit 948113398c
21 changed files with 829 additions and 188 deletions

View File

@@ -56,6 +56,15 @@ namespace msg::usrmsg
busrmsg::create_unl_list_container(msg, unl_list);
}
void usrmsg_parser::create_ledger_query_response(std::vector<uint8_t> &msg, std::string_view reply_for,
const ledger::query::query_result &result) const
{
if (protocol == util::PROTOCOL::JSON)
jusrmsg::create_ledger_query_response(msg, reply_for, result);
else
busrmsg::create_ledger_query_response(msg, reply_for, result);
}
int usrmsg_parser::parse(std::string_view message)
{
if (protocol == util::PROTOCOL::JSON)
@@ -97,4 +106,12 @@ namespace msg::usrmsg
return busrmsg::extract_input_container(input, nonce, max_lcl_seq_no, encoded_content);
}
int usrmsg_parser::extract_ledger_query(ledger::query::query_request &extracted_query, std::string &extracted_id) const
{
if (protocol == util::PROTOCOL::JSON)
return jusrmsg::extract_ledger_query(extracted_query, extracted_id, jdoc);
else
return busrmsg::extract_ledger_query(extracted_query, extracted_id, bdoc);
}
} // namespace msg::usrmsg