32 #ifndef LEDGER_CORE_ABSTRACTTRANSACTIONSBULKPARSER_H 33 #define LEDGER_CORE_ABSTRACTTRANSACTIONSBULKPARSER_H 35 #define PROXY_PARSE_TXS(method, ...) \ 37 return getTransactionsParser().method(__VA_ARGS__); \ 44 template <
typename BlockchainExplorerTransactionsBulk,
typename TxsParser>
53 if (getLastKey() ==
"truncated" && _depth == 0) {
56 PROXY_PARSE_TXS(Bool, b)
60 PROXY_PARSE_TXS(Int, i)
63 bool Uint(
unsigned i) {
64 PROXY_PARSE_TXS(Uint, i)
67 bool Int64(int64_t i) {
68 PROXY_PARSE_TXS(Int64, i)
71 bool Uint64(uint64_t i) {
72 PROXY_PARSE_TXS(Uint64, i)
75 bool Double(
double d) {
76 PROXY_PARSE_TXS(Double, d)
79 bool RawNumber(
const rapidjson::Reader::Ch *str, rapidjson::SizeType length,
bool copy) {
80 PROXY_PARSE_TXS(RawNumber, str, length, copy)
83 bool String(
const rapidjson::Reader::Ch *str, rapidjson::SizeType length,
bool copy) {
84 PROXY_PARSE_TXS(
String, str, length, copy)
88 PROXY_PARSE_TXS(StartObject)
91 bool Key(
const rapidjson::Reader::Ch *str, rapidjson::SizeType length,
bool copy) {
92 PROXY_PARSE_TXS(Key, str, length, copy)
95 bool EndObject(rapidjson::SizeType memberCount) {
96 PROXY_PARSE_TXS(EndObject, memberCount)
100 if (_depth >= 1 || getLastKey() ==
"txs") {
105 getTransactionsParser().init(&_bulk->transactions);
108 PROXY_PARSE_TXS(StartArray)
111 bool EndArray(rapidjson::SizeType elementCount) {
116 PROXY_PARSE_TXS(EndArray, elementCount)
119 void init(BlockchainExplorerTransactionsBulk *bulk) {
124 virtual TxsParser &getTransactionsParser() = 0;
125 virtual std::string &getLastKey() = 0;
127 BlockchainExplorerTransactionsBulk* _bulk;
133 #endif //LEDGER_CORE_ABSTRACTTRANSACTIONSBULKPARSER_H Definition: Account.cpp:8
Definition: AbstractTransactionsBulkParser.h:45