//! Swap operator void swap(wt_int_rlmn& wt) { if (this != &wt) { std::swap(m_size, wt.m_size); m_bl.swap(wt.m_bl); m_bf.swap(wt.m_bf); m_wt.swap(wt.m_wt); m_bl_rank.swap(wt.m_bl_rank); m_bl_rank.set_vector(&m_bl); wt.m_bl_rank.set_vector(&(wt.m_bl)); m_bf_rank.swap(wt.m_bf_rank); m_bf_rank.set_vector(&m_bf); wt.m_bf_rank.set_vector(&(wt.m_bf)); m_bl_select.swap(wt.m_bl_select); m_bl_select.set_vector(&m_bl); wt.m_bl_select.set_vector(&(wt.m_bl)); m_bf_select.swap(wt.m_bf_select); m_bf_select.set_vector(&m_bf); wt.m_bf_select.set_vector(&(wt.m_bf)); m_C.swap(wt.m_C); m_C_bf_rank.swap(wt.m_C_bf_rank); } }
//! Load method void load(std::istream& in) { m_char.load(in); m_char_rank.load(in); m_char_rank.set_vector(&m_char); m_char_select.load(in); m_char_select.set_vector(&m_char); m_C.load(in); read_member(m_sigma, in); }
//! Loads the data structure from the given istream. void load(std::istream& in) { read_member(m_size, in); m_bl.load(in); m_bf.load(in); m_wt.load(in); m_bl_rank.load(in, &m_bl); m_bf_rank.load(in, &m_bf); m_bl_select.load(in, &m_bl); m_bf_select.load(in, &m_bf); m_C.load(in); m_C_bf_rank.load(in); }
//! Load from a stream. void load(std::istream& in) { m_data.load(in); m_overflow.load(in); m_overflow_rank.load(in, &m_overflow); m_level_pointer_and_rank.load(in); read_member(m_max_level, in); }
//! Serializes the data structure into the given ostream size_type serialize(std::ostream& out, structure_tree_node* v=nullptr, std::string name="")const { structure_tree_node* child = structure_tree::add_child(v, name, util::class_name(*this)); size_type written_bytes = 0; written_bytes += write_member(m_size, out, child, "size"); written_bytes += m_bl.serialize(out, child, "bl"); written_bytes += m_bf.serialize(out, child, "bf"); written_bytes += m_wt.serialize(out, child, "wt"); written_bytes += m_bl_rank.serialize(out, child, "bl_rank"); written_bytes += m_bf_rank.serialize(out, child, "bf_rank"); written_bytes += m_bl_select.serialize(out, child, "bl_select"); written_bytes += m_bf_select.serialize(out, child, "bf_select"); written_bytes += m_C.serialize(out, child, "C"); written_bytes += m_C_bf_rank.serialize(out, child, "C_bf_rank"); structure_tree::add_size(child, written_bytes); return written_bytes; }
void copy(const wt_int_rlmn& wt) { m_size = wt.m_size; m_bl = wt.m_bl; m_bf = wt.m_bf; m_wt = wt.m_wt; m_bl_rank = wt.m_bl_rank; m_bl_rank.set_vector(&m_bl); m_bf_rank = wt.m_bf_rank; m_bf_rank.set_vector(&m_bf); m_bl_select = wt.m_bl_select; m_bl_select.set_vector(&m_bl); m_bf_select = wt.m_bf_select; m_bf_select.set_vector(&m_bf); m_C = wt.m_C; m_C_bf_rank = wt.m_C_bf_rank; }
void copy(const lcp_dac& lcp_c) { m_data = lcp_c.m_data; m_overflow = lcp_c.m_overflow; m_overflow_rank = lcp_c.m_overflow_rank; m_overflow_rank.set_vector(&m_overflow); m_level_pointer_and_rank = lcp_c.m_level_pointer_and_rank; m_max_level = lcp_c.m_max_level; }
void copy(const int_alphabet& strat) { m_char = strat.m_char; m_char_rank = strat.m_char_rank; m_char_rank.set_vector(&m_char); m_char_select = strat.m_char_select; m_char_select.set_vector(&m_char); m_C = strat.m_C; m_sigma = strat.m_sigma; }
void copy(const succinct_byte_alphabet_strategy& strat){ m_char = strat.m_char; m_char_rank = strat.m_char_rank; m_char_rank.set_vector(&m_char); m_char_select = strat.m_char_select; m_char_select.set_vector(&m_char); m_C = strat.m_C; m_sigma = strat.m_sigma; }
//! Serialize method size_type serialize(std::ostream& out, structure_tree_node* v=nullptr, std::string name="")const { structure_tree_node* child = structure_tree::add_child(v, name, util::class_name(*this)); size_type written_bytes = 0; written_bytes += m_char.serialize(out, child, "m_char"); written_bytes += m_char_rank.serialize(out, child, "m_char_rank"); written_bytes += m_char_select.serialize(out, child, "m_char_select"); written_bytes += m_C.serialize(out, child, "m_C"); written_bytes += write_member(m_sigma, out, child, "m_sigma"); structure_tree::add_size(child, written_bytes); return written_bytes; }
int_alphabet& operator=(int_alphabet&& strat) { if (this != &strat) { m_char = std::move(strat.m_char); m_char_rank = std::move(strat.m_char_rank); m_char_rank.set_vector(&m_char); m_char_select = std::move(strat.m_char_select); m_char_select.set_vector(&m_char); m_C = std::move(strat.m_C); m_sigma = std::move(strat.m_sigma); } return *this; }