2 #include "ypc/core_t/analyzer/internal/is_multi_datasource.h"
3 #include "ypc/core_t/analyzer/var/data_hash_var.h"
4 #include "ypc/core_t/analyzer/var/data_source_var.h"
5 #include "ypc/stbox/ebyte.h"
6 #include "ypc/stbox/stx_status.h"
11 template <
typename Crypto,
typename DataSession,
12 bool has_multi_datasource = is_multi_datasource<DataSession>::value>
16 void set_data_hash() {
17 stbox::bytes joint_bytes;
18 std::vector<stbox::bytes> rs;
19 for (uint32_t i = 0; i < data_source_var<DataSession>::m_datasource.size();
25 std::sort(rs.begin(), rs.end());
26 rs.erase(std::unique(rs.begin(), rs.end()), rs.end());
28 for (uint32_t i = 0; i < rs.size(); ++i) {
30 LOG(INFO) << i <<
"-th data with data hash: " << rs[i];
33 Crypto::hash_256(joint_bytes, data_hash_var::m_data_hash);
35 LOG(INFO) <<
"final data hash: " << data_hash_var::m_data_hash;
40 template <
typename Crypto>
43 void set_data_hash() {}
46 template <
typename Crypto,
typename DataSession>
53 void set_data_hash() {
54 data_hash_var::m_data_hash = data_source_var_t::m_datasource->data_hash();