2 #include "ypc/core_t/analyzer/internal/data_streams/noinput_data_stream.h"
3 #include "ypc/core_t/analyzer/internal/is_multi_datasource.h"
4 #include "ypc/core_t/analyzer/var/data_source_var.h"
5 #include "ypc/core_t/analyzer/var/parser_var.h"
10 template <
typename DataSession,
typename ParserT,
11 bool has_multi_datasource = is_multi_datasource<DataSession>::value>
14 template <
typename ParserT>
20 uint32_t create_parser() {
21 parser_var_t::m_engine.reset(new ::hpda::engine());
22 parser_var_t::m_parser.reset(
new ParserT());
23 return stbox::stx_status::success;
27 template <
typename DataSession,
typename ParserT>
35 uint32_t create_parser() {
36 if (!data_source_var_t::m_datasource) {
37 return stbox::stx_status::data_source_not_set;
39 parser_var_t::m_engine.reset(new ::hpda::engine());
40 data_source_var_t::m_datasource->set_engine(parser_var_t::m_engine.get());
41 parser_var_t::m_parser.reset(
42 new ParserT(data_source_var_t::m_datasource.get()));
43 return stbox::stx_status::success;
47 template <
typename DataSession,
typename ParserT>
55 uint32_t create_parser() {
56 if (data_source_var_t::m_datasource.empty()) {
57 return stbox::stx_status::data_source_not_set;
59 parser_var_t::m_engine.reset(new ::hpda::engine());
60 for (
auto ds : data_source_var_t::m_datasource) {
61 ds->set_engine(parser_var_t::m_engine.get());
64 parser_var_t::m_parser.reset(
new ParserT(data_source_var_t::m_datasource));
65 return stbox::stx_status::success;