rippled
Loading...
Searching...
No Matches
aged_container_utility.h
1#pragma once
2
3#include <xrpl/beast/container/aged_container.h>
4
5#include <chrono>
6#include <type_traits>
7
8namespace beast {
9
11template <class AgedContainer, class Rep, class Period>
13expire(AgedContainer& c, std::chrono::duration<Rep, Period> const& age)
14{
15 std::size_t n(0);
16 auto const expired(c.clock().now() - age);
17 for (auto iter(c.chronological.cbegin()); iter != c.chronological.cend() && iter.when() <= expired;)
18 {
19 iter = c.erase(iter);
20 ++n;
21 }
22 return n;
23}
24
25} // namespace beast
std::enable_if< is_aged_container< AgedContainer >::value, std::size_t >::type expire(AgedContainer &c, std::chrono::duration< Rep, Period > const &age)
Expire aged container items past the specified age.