FixedKVNodeLayout(char *buf) :
buf(buf) {}
+ virtual ~FixedKVNodeLayout() = default;
+
const_iterator begin() const {
return const_iterator(
this,
return layout.template Pointer<3>(buf);
}
+ /**
+ * node_resolve/unresolve_vals
+ *
+ * If the representation for values depends in some way on the
+ * node in which they are located, users may implement
+ * resolve/unresolve to enable copy_from_foreign to handle that
+ * transition.
+ */
+ virtual void node_resolve_vals(iterator from, iterator to) const {}
+ virtual void node_unresolve_vals(iterator from, iterator to) const {}
+
/**
* copy_from_foreign
*
memcpy(
tgt->get_key_ptr(), from_src->get_key_ptr(),
to_src->get_key_ptr() - from_src->get_key_ptr());
+ from_src->node->node_resolve_vals(tgt, tgt + (to_src - from_src));
+ tgt->node->node_unresolve_vals(tgt, tgt + (to_src - from_src));
}
/**