39 std::shared_ptr<BackendInterface> backend_;
45 : backend_{backend}, numCursors_{numCursors}, pageSize_{pageSize}
49 [[nodiscard]] std::vector<CursorPair>
50 getCursors(uint32_t
const seq)
const override
52 namespace rg = std::ranges;
54 auto accountRoots = [
this, seq]() {
56 return backend_->fetchAccountRoots(numCursors_, pageSize_, seq, yield);
60 rg::sort(accountRoots);
61 std::vector<ripple::uint256> cursors{data::kFIRST_KEY};
62 rg::copy(accountRoots.begin(), accountRoots.end(), std::back_inserter(cursors));
64 cursors.push_back(data::kLAST_KEY);
66 std::vector<CursorPair> pairs;
67 pairs.reserve(cursors.size());
72 std::prev(std::end(cursors)),
73 std::next(std::begin(cursors)),
74 std::back_inserter(pairs),
75 [](
auto&& a,
auto&& b) ->
CursorPair {
return {a, b}; }
auto synchronousAndRetryOnTimeout(FnType &&func)
Synchronously execute the given function object and retry until no DatabaseTimeout is thrown.
Definition BackendInterface.hpp:130