inline uint32_t partial_hash(const cons<Head1, cons<Head2, Tail> > &v, const BitSet &used, size_t cur_pos) { uint32_t a = used[cur_pos] ? hash(v.get_head()) : 0; uint32_t b = used[cur_pos+1] ? hash(v.get_tail().get_head()) : 0; uint32_t c = partial_hash(v.get_tail().get_tail(), used, cur_pos + 2); return lintel::BobJenkinsHashMix3(a,b,c); }
activity::activity(header_type hdr) : m_header(hdr), m_msg_content("") { partial_hash(); }
activity::activity(header_type hdr, content_type msg) : m_header(hdr), m_msg_content(msg) { m_header.msg_size = m_msg_content.length(); partial_hash(); }