10 #include "ypc/core_t/analyzer/helper/parser_type_traits.h"
11 #include "ypc/core_t/analyzer/interface/algo_interface.h"
12 #include "ypc/core_t/analyzer/interface/allowance_interface.h"
13 #include "ypc/core_t/analyzer/interface/data_hash_interface.h"
14 #include "ypc/core_t/analyzer/interface/data_interface.h"
15 #include "ypc/core_t/analyzer/interface/model_interface.h"
16 #include "ypc/core_t/analyzer/interface/parser_interface.h"
17 #include "ypc/core_t/analyzer/internal/data_streams/multi_data_stream.h"
18 #include "ypc/core_t/analyzer/internal/data_streams/noinput_data_stream.h"
19 #include "ypc/core_t/analyzer/internal/data_streams/raw_data_stream.h"
20 #include "ypc/core_t/analyzer/internal/data_streams/sealed_data_stream.h"
21 #include "ypc/core_t/analyzer/internal/keymgr_session.h"
22 #include "ypc/core_t/analyzer/internal/results/local_result.h"
23 #include "ypc/core_t/analyzer/internal/results/offchain_result.h"
24 #include "ypc/core_t/analyzer/internal/results/onchain_result.h"
27 template <
typename Crypto,
typename DataSession,
typename ParserT,
28 typename Result,
typename ModelT = void,
29 template <
typename>
class DataAllowancePolicy = ignore_data_allowance,
30 template <
typename>
class ModelAllowancePolicy =
31 ignore_model_allowance>
34 Crypto, DataSession, ParserT, Result, ModelT, DataAllowancePolicy,
35 ModelAllowancePolicy>,
36 virtual public Result,
45 DataAllowancePolicy, ModelAllowancePolicy>
52 uint32_t begin_parse_data_item() {
53 LOG(INFO) <<
"start init keymgr session...";
54 uint32_t ret = keymgr_session_t::init_keymgr_session();
56 LOG(ERROR) <<
"parse_data_item_impl failed: "
57 << stbox::status_string(ret);
60 LOG(INFO) <<
"init keymgr session done, start create_parser";
61 ret = parser_interface_t::create_parser();
63 LOG(ERROR) <<
"create_parser failed: " << stbox::status_string(ret);
66 LOG(INFO) <<
"begin_parse_data_item done";
67 return stbox::stx_status::success;
70 uint32_t parse_data_item(
const uint8_t *input_param, uint32_t len) {
72 uint32_t ret = algo_interface_t::parse_data_item_impl(input_param, len);
74 LOG(ERROR) <<
"parse_data_item_impl failed: "
75 << stbox::status_string(ret);
78 data_hash_interface_t::set_data_hash();
79 return stbox::stx_status::success;
82 uint32_t end_parse_data_item() {
83 uint32_t ret = data_interface_t::check_actual_data_hash();
85 LOG(ERROR) <<
"check_actual_ata_hash failed: "
86 << stbox::status_string(ret);
89 ret = Result::generate_result();
91 LOG(ERROR) <<
"generate result failed: " << stbox::status_string(ret);
94 return keymgr_session_t::close_keymgr_session();
97 uint32_t get_parser_type()
const {