using iterator_fut = base_iertr::future<iterator>;
using mapped_space_visitor_t = std::function<
- void(paddr_t, extent_len_t)>;
+ void(paddr_t, extent_len_t, depth_t)>;
class iterator {
public:
min_max_t<node_key_t>::max
).si_then([this, visitor, &iter](InternalNodeRef root_node) {
iter.get_internal(root.get_depth()).node = root_node;
- if (visitor) (*visitor)(root_node->get_paddr(), root_node->get_length());
+ if (visitor) (*visitor)(
+ root_node->get_paddr(),
+ root_node->get_length(),
+ root.get_depth());
return lookup_root_iertr::now();
});
} else {
root.get_location(),
min_max_t<node_key_t>::min,
min_max_t<node_key_t>::max
- ).si_then([visitor, &iter](LeafNodeRef root_node) {
+ ).si_then([visitor, &iter, this](LeafNodeRef root_node) {
iter.leaf.node = root_node;
- if (visitor) (*visitor)(root_node->get_paddr(), root_node->get_length());
+ if (visitor) (*visitor)(
+ root_node->get_paddr(),
+ root_node->get_length(),
+ root.get_depth());
return lookup_root_iertr::now();
});
}
auto node_iter = f(*node);
assert(node_iter != node->end());
entry.pos = node_iter->get_offset();
- if (visitor) (*visitor)(node->get_paddr(), node->get_length());
+ if (visitor) (*visitor)(node->get_paddr(), node->get_length(), depth);
return seastar::now();
});
}
iter.leaf.node = node;
auto node_iter = f(*node);
iter.leaf.pos = node_iter->get_offset();
- if (visitor) (*visitor)(node->get_paddr(), node->get_length());
+ if (visitor) (*visitor)(node->get_paddr(), node->get_length(), 1);
return seastar::now();
});
}
using scan_mapped_space_iertr = base_iertr;
using scan_mapped_space_ret = scan_mapped_space_iertr::future<>;
using scan_mapped_space_func_t = std::function<
- void(paddr_t, extent_len_t)>;
+ void(paddr_t, extent_len_t, depth_t)>;
virtual scan_mapped_space_ret scan_mapped_space(
Transaction &t,
scan_mapped_space_func_t &&f) = 0;