rippled
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Public Attributes | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator > Class Template Reference

Associative container where each element is also indexed by time. More...

#include <aged_ordered_container.h>

Collaboration diagram for beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >:
Collaboration graph
[legend]

Classes

class  chronological_t
 
class  config_t
 
struct  element
 
class  KeyValueCompare
 
class  pair_value_compare
 

Public Types

using clock_type = abstract_clock< Clock >
 
using time_point = typename clock_type::time_point
 
using duration = typename clock_type::duration
 
using key_type = Key
 
using mapped_type = T
 
using value_type = typename std::conditional< IsMap, std::pair< Key const, T >, Key >::type
 
using size_type = std::size_t
 
using difference_type = std::ptrdiff_t
 
using is_unordered = std::false_type
 
using is_multi = std::integral_constant< bool, IsMulti >
 
using is_map = std::integral_constant< bool, IsMap >
 
using key_compare = Compare
 
using value_compare = typename std::conditional< IsMap, pair_value_compare, Compare >::type
 
using allocator_type = Allocator
 
using reference = value_type &
 
using const_reference = value_type const &
 
using pointer = typename std::allocator_traits< Allocator >::pointer
 
using const_pointer = typename std::allocator_traits< Allocator >::const_pointer
 
using iterator = beast::detail::aged_container_iterator<!IsMap, typename cont_type::iterator >
 
using const_iterator = beast::detail::aged_container_iterator< true, typename cont_type::iterator >
 
using reverse_iterator = beast::detail::aged_container_iterator<!IsMap, typename cont_type::reverse_iterator >
 
using const_reverse_iterator = beast::detail::aged_container_iterator< true, typename cont_type::reverse_iterator >
 

Public Member Functions

 aged_ordered_container ()=delete
 
 aged_ordered_container (clock_type &clock)
 
 aged_ordered_container (clock_type &clock, Compare const &comp)
 
 aged_ordered_container (clock_type &clock, Allocator const &alloc)
 
 aged_ordered_container (clock_type &clock, Compare const &comp, Allocator const &alloc)
 
template<class InputIt >
 aged_ordered_container (InputIt first, InputIt last, clock_type &clock)
 
template<class InputIt >
 aged_ordered_container (InputIt first, InputIt last, clock_type &clock, Compare const &comp)
 
template<class InputIt >
 aged_ordered_container (InputIt first, InputIt last, clock_type &clock, Allocator const &alloc)
 
template<class InputIt >
 aged_ordered_container (InputIt first, InputIt last, clock_type &clock, Compare const &comp, Allocator const &alloc)
 
 aged_ordered_container (aged_ordered_container const &other)
 
 aged_ordered_container (aged_ordered_container const &other, Allocator const &alloc)
 
 aged_ordered_container (aged_ordered_container &&other)
 
 aged_ordered_container (aged_ordered_container &&other, Allocator const &alloc)
 
 aged_ordered_container (std::initializer_list< value_type > init, clock_type &clock)
 
 aged_ordered_container (std::initializer_list< value_type > init, clock_type &clock, Compare const &comp)
 
 aged_ordered_container (std::initializer_list< value_type > init, clock_type &clock, Allocator const &alloc)
 
 aged_ordered_container (std::initializer_list< value_type > init, clock_type &clock, Compare const &comp, Allocator const &alloc)
 
 ~aged_ordered_container ()
 
aged_ordered_containeroperator= (aged_ordered_container const &other)
 
aged_ordered_containeroperator= (aged_ordered_container &&other)
 
aged_ordered_containeroperator= (std::initializer_list< value_type > init)
 
allocator_type get_allocator () const
 
clock_typeclock ()
 
clock_type const & clock () const
 
template<class K , bool maybe_multi = IsMulti, bool maybe_map = IsMap, class = typename std::enable_if<maybe_map && !maybe_multi>::type>
std::conditional< IsMap, T, void * >::type & at (K const &k)
 
template<class K , bool maybe_multi = IsMulti, bool maybe_map = IsMap, class = typename std::enable_if<maybe_map && !maybe_multi>::type>
std::conditional< IsMap, T, void * >::type const & at (K const &k) const
 
template<bool maybe_multi = IsMulti, bool maybe_map = IsMap, class = typename std::enable_if<maybe_map && !maybe_multi>::type>
std::conditional< IsMap, T, void * >::type & operator[] (Key const &key)
 
template<bool maybe_multi = IsMulti, bool maybe_map = IsMap, class = typename std::enable_if<maybe_map && !maybe_multi>::type>
std::conditional< IsMap, T, void * >::type & operator[] (Key &&key)
 
iterator begin ()
 
const_iterator begin () const
 
const_iterator cbegin () const
 
iterator end ()
 
const_iterator end () const
 
const_iterator cend () const
 
reverse_iterator rbegin ()
 
const_reverse_iterator rbegin () const
 
const_reverse_iterator crbegin () const
 
reverse_iterator rend ()
 
const_reverse_iterator rend () const
 
const_reverse_iterator crend () const
 
iterator iterator_to (value_type &value)
 
const_iterator iterator_to (value_type const &value) const
 
bool empty () const noexcept
 
size_type size () const noexcept
 
size_type max_size () const noexcept
 
void clear ()
 
template<bool maybe_multi = IsMulti>
auto insert (value_type const &value) -> typename std::enable_if<!maybe_multi, std::pair< iterator, bool > >::type
 
template<bool maybe_multi = IsMulti>
auto insert (value_type const &value) -> typename std::enable_if< maybe_multi, iterator >::type
 
template<bool maybe_multi = IsMulti, bool maybe_map = IsMap>
auto insert (value_type &&value) -> typename std::enable_if<!maybe_multi &&!maybe_map, std::pair< iterator, bool > >::type
 
template<bool maybe_multi = IsMulti, bool maybe_map = IsMap>
auto insert (value_type &&value) -> typename std::enable_if< maybe_multi &&!maybe_map, iterator >::type
 
template<bool maybe_multi = IsMulti>
auto insert (const_iterator hint, value_type const &value) -> typename std::enable_if<!maybe_multi, iterator >::type
 
template<bool maybe_multi = IsMulti>
std::enable_if< maybe_multi, iterator >::type insert (const_iterator, value_type const &value)
 
template<bool maybe_multi = IsMulti>
auto insert (const_iterator hint, value_type &&value) -> typename std::enable_if<!maybe_multi, iterator >::type
 
template<bool maybe_multi = IsMulti>
std::enable_if< maybe_multi, iterator >::type insert (const_iterator, value_type &&value)
 
template<class P , bool maybe_map = IsMap>
std::enable_if< maybe_map &&std::is_constructible< value_type, P && >::value, typenamestd::conditional< IsMulti, iterator, std::pair< iterator, bool > >::type >::type insert (P &&value)
 
template<class P , bool maybe_map = IsMap>
std::enable_if< maybe_map &&std::is_constructible< value_type, P && >::value, typenamestd::conditional< IsMulti, iterator, std::pair< iterator, bool > >::type >::type insert (const_iterator hint, P &&value)
 
template<class InputIt >
void insert (InputIt first, InputIt last)
 
void insert (std::initializer_list< value_type > init)
 
template<bool maybe_multi = IsMulti, class... Args>
auto emplace (Args &&... args) -> typename std::enable_if<!maybe_multi, std::pair< iterator, bool > >::type
 
template<bool maybe_multi = IsMulti, class... Args>
auto emplace (Args &&... args) -> typename std::enable_if< maybe_multi, iterator >::type
 
template<bool maybe_multi = IsMulti, class... Args>
auto emplace_hint (const_iterator hint, Args &&... args) -> typename std::enable_if<!maybe_multi, std::pair< iterator, bool > >::type
 
template<bool maybe_multi = IsMulti, class... Args>
std::enable_if< maybe_multi, iterator >::type emplace_hint (const_iterator, Args &&... args)
 
template<bool is_const, class Iterator , class = std::enable_if_t<!is_boost_reverse_iterator<Iterator>::value>>
beast::detail::aged_container_iterator< false, Iterator > erase (beast::detail::aged_container_iterator< is_const, Iterator > pos)
 
template<bool is_const, class Iterator , class = std::enable_if_t<!is_boost_reverse_iterator<Iterator>::value>>
beast::detail::aged_container_iterator< false, Iterator > erase (beast::detail::aged_container_iterator< is_const, Iterator > first, beast::detail::aged_container_iterator< is_const, Iterator > last)
 
template<class K >
auto erase (K const &k) -> size_type
 
void swap (aged_ordered_container &other) noexcept
 
template<bool is_const, class Iterator , class = std::enable_if_t<!is_boost_reverse_iterator<Iterator>::value>>
void touch (beast::detail::aged_container_iterator< is_const, Iterator > pos)
 
template<class K >
size_type touch (K const &k)
 
template<class K >
size_type count (K const &k) const
 
template<class K >
iterator find (K const &k)
 
template<class K >
const_iterator find (K const &k) const
 
template<class K >
std::pair< iterator, iteratorequal_range (K const &k)
 
template<class K >
std::pair< const_iterator, const_iteratorequal_range (K const &k) const
 
template<class K >
iterator lower_bound (K const &k)
 
template<class K >
const_iterator lower_bound (K const &k) const
 
template<class K >
iterator upper_bound (K const &k)
 
template<class K >
const_iterator upper_bound (K const &k) const
 
key_compare key_comp () const
 
value_compare value_comp () const
 
template<bool OtherIsMulti, bool OtherIsMap, class OtherT , class OtherDuration , class OtherAllocator >
bool operator== (aged_ordered_container< OtherIsMulti, OtherIsMap, Key, OtherT, OtherDuration, Compare, OtherAllocator > const &other) const
 
template<bool OtherIsMulti, bool OtherIsMap, class OtherT , class OtherDuration , class OtherAllocator >
bool operator!= (aged_ordered_container< OtherIsMulti, OtherIsMap, Key, OtherT, OtherDuration, Compare, OtherAllocator > const &other) const
 
template<bool OtherIsMulti, bool OtherIsMap, class OtherT , class OtherDuration , class OtherAllocator >
bool operator< (aged_ordered_container< OtherIsMulti, OtherIsMap, Key, OtherT, OtherDuration, Compare, OtherAllocator > const &other) const
 
template<bool OtherIsMulti, bool OtherIsMap, class OtherT , class OtherDuration , class OtherAllocator >
bool operator<= (aged_ordered_container< OtherIsMulti, OtherIsMap, Key, OtherT, OtherDuration, Compare, OtherAllocator > const &other) const
 
template<bool OtherIsMulti, bool OtherIsMap, class OtherT , class OtherDuration , class OtherAllocator >
bool operator> (aged_ordered_container< OtherIsMulti, OtherIsMap, Key, OtherT, OtherDuration, Compare, OtherAllocator > const &other) const
 
template<bool OtherIsMulti, bool OtherIsMap, class OtherT , class OtherDuration , class OtherAllocator >
bool operator>= (aged_ordered_container< OtherIsMulti, OtherIsMap, Key, OtherT, OtherDuration, Compare, OtherAllocator > const &other) const
 
template<class K , bool maybe_multi, bool maybe_map, class >
std::conditional< IsMap, T, void * >::type const & at (K const &k) const
 
template<class K >
auto touch (K const &k) -> size_type
 

Public Attributes

class beast::detail::aged_ordered_container::chronological_t chronological
 

Private Types

using list_type = typename boost::intrusive::make_list< element, boost::intrusive::constant_time_size< false > >::type
 
using cont_type = typename std::conditional< IsMulti, typename boost::intrusive::make_multiset< element, boost::intrusive::constant_time_size< true >, boost::intrusive::compare< KeyValueCompare > >::type, typename boost::intrusive::make_set< element, boost::intrusive::constant_time_size< true >, boost::intrusive::compare< KeyValueCompare > >::type >::type
 
using ElementAllocator = typename std::allocator_traits< Allocator >::template rebind_alloc< element >
 
using ElementAllocatorTraits = std::allocator_traits< ElementAllocator >
 

Private Member Functions

template<class... Args>
elementnew_element (Args &&... args)
 
void delete_element (element const *p)
 
void unlink_and_delete_element (element const *p)
 
template<bool is_const, class Iterator , class = std::enable_if_t<!is_boost_reverse_iterator<Iterator>::value>>
void touch (beast::detail::aged_container_iterator< is_const, Iterator > pos, typename clock_type::time_point const &now)
 
template<bool maybe_propagate = std::allocator_traits<Allocator>::propagate_on_container_swap::value>
std::enable_if< maybe_propagate >::type swap_data (aged_ordered_container &other) noexcept
 
template<bool maybe_propagate = std::allocator_traits<Allocator>::propagate_on_container_swap::value>
std::enable_if<!maybe_propagate >::type swap_data (aged_ordered_container &other) noexcept
 

Static Private Member Functions

static Key const & extract (value_type const &value)
 

Private Attributes

config_t m_config
 
cont_type m_cont
 

Detailed Description

template<bool IsMulti, bool IsMap, class Key, class T, class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
class beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >

Associative container where each element is also indexed by time.

This container mirrors the interface of the standard library ordered associative containers, with the addition that each element is associated with a when time_point which is obtained from the value of the clock's now. The function touch updates the time for an element to the current time as reported by the clock.

An extra set of iterator types and member functions are provided in the chronological memberspace that allow traversal in temporal or reverse temporal order. This container is useful as a building block for caches whose items expire after a certain amount of time. The chronological iterators allow for fully customizable expiration strategies.

See also
aged_set, aged_multiset, aged_map, aged_multimap

Definition at line 61 of file aged_ordered_container.h.

Member Typedef Documentation

◆ clock_type

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
using beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::clock_type = abstract_clock<Clock>

Definition at line 64 of file aged_ordered_container.h.

◆ time_point

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
using beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::time_point = typename clock_type::time_point

Definition at line 65 of file aged_ordered_container.h.

◆ duration

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
using beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::duration = typename clock_type::duration

Definition at line 66 of file aged_ordered_container.h.

◆ key_type

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
using beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::key_type = Key

Definition at line 67 of file aged_ordered_container.h.

◆ mapped_type

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
using beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::mapped_type = T

Definition at line 68 of file aged_ordered_container.h.

◆ value_type

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
using beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::value_type = typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type

Definition at line 69 of file aged_ordered_container.h.

◆ size_type

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
using beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::size_type = std::size_t

Definition at line 70 of file aged_ordered_container.h.

◆ difference_type

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
using beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::difference_type = std::ptrdiff_t

Definition at line 71 of file aged_ordered_container.h.

◆ is_unordered

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
using beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::is_unordered = std::false_type

Definition at line 74 of file aged_ordered_container.h.

◆ is_multi

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
using beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::is_multi = std::integral_constant<bool, IsMulti>

Definition at line 75 of file aged_ordered_container.h.

◆ is_map

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
using beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::is_map = std::integral_constant<bool, IsMap>

Definition at line 76 of file aged_ordered_container.h.

◆ list_type

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
using beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::list_type = typename boost::intrusive::make_list<element, boost::intrusive::constant_time_size<false> >::type
private

Definition at line 194 of file aged_ordered_container.h.

◆ cont_type

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
using beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::cont_type = typename std::conditional< IsMulti, typename boost::intrusive::make_multiset< element, boost::intrusive::constant_time_size<true>, boost::intrusive::compare<KeyValueCompare> >::type, typename boost::intrusive:: make_set<element, boost::intrusive::constant_time_size<true>, boost::intrusive::compare<KeyValueCompare> >:: type>::type
private

Definition at line 196 of file aged_ordered_container.h.

◆ ElementAllocator

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
using beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::ElementAllocator = typename std::allocator_traits<Allocator>::template rebind_alloc<element>
private

Definition at line 206 of file aged_ordered_container.h.

◆ ElementAllocatorTraits

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
using beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::ElementAllocatorTraits = std::allocator_traits<ElementAllocator>
private

Definition at line 208 of file aged_ordered_container.h.

◆ key_compare

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
using beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::key_compare = Compare

Definition at line 360 of file aged_ordered_container.h.

◆ value_compare

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
using beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::value_compare = typename std::conditional<IsMap, pair_value_compare, Compare>::type

Definition at line 361 of file aged_ordered_container.h.

◆ allocator_type

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
using beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::allocator_type = Allocator

Definition at line 362 of file aged_ordered_container.h.

◆ reference

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
using beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::reference = value_type&

Definition at line 363 of file aged_ordered_container.h.

◆ const_reference

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
using beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::const_reference = value_type const&

Definition at line 364 of file aged_ordered_container.h.

◆ pointer

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
using beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::pointer = typename std::allocator_traits<Allocator>::pointer

Definition at line 365 of file aged_ordered_container.h.

◆ const_pointer

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
using beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::const_pointer = typename std::allocator_traits<Allocator>::const_pointer

Definition at line 366 of file aged_ordered_container.h.

◆ iterator

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
using beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::iterator = beast::detail::aged_container_iterator<!IsMap, typename cont_type::iterator>

Definition at line 370 of file aged_ordered_container.h.

◆ const_iterator

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
using beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::const_iterator = beast::detail::aged_container_iterator<true, typename cont_type::iterator>

Definition at line 371 of file aged_ordered_container.h.

◆ reverse_iterator

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
using beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::reverse_iterator = beast::detail::aged_container_iterator<!IsMap, typename cont_type::reverse_iterator>

Definition at line 372 of file aged_ordered_container.h.

◆ const_reverse_iterator

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
using beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::const_reverse_iterator = beast::detail::aged_container_iterator<true, typename cont_type::reverse_iterator>

Definition at line 373 of file aged_ordered_container.h.

Constructor & Destructor Documentation

◆ aged_ordered_container() [1/17]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::aged_ordered_container ( )
delete

◆ aged_ordered_container() [2/17]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock , class Compare , class Allocator >
beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::aged_ordered_container ( clock_type clock)
explicit

Definition at line 1061 of file aged_ordered_container.h.

◆ aged_ordered_container() [3/17]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock , class Compare , class Allocator >
beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::aged_ordered_container ( clock_type clock,
Compare const &  comp 
)

Definition at line 1067 of file aged_ordered_container.h.

◆ aged_ordered_container() [4/17]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock , class Compare , class Allocator >
beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::aged_ordered_container ( clock_type clock,
Allocator const &  alloc 
)

Definition at line 1075 of file aged_ordered_container.h.

◆ aged_ordered_container() [5/17]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock , class Compare , class Allocator >
beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::aged_ordered_container ( clock_type clock,
Compare const &  comp,
Allocator const &  alloc 
)

Definition at line 1083 of file aged_ordered_container.h.

◆ aged_ordered_container() [6/17]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock , class Compare , class Allocator >
template<class InputIt >
beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::aged_ordered_container ( InputIt  first,
InputIt  last,
clock_type clock 
)

Definition at line 1093 of file aged_ordered_container.h.

◆ aged_ordered_container() [7/17]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock , class Compare , class Allocator >
template<class InputIt >
beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::aged_ordered_container ( InputIt  first,
InputIt  last,
clock_type clock,
Compare const &  comp 
)

Definition at line 1104 of file aged_ordered_container.h.

◆ aged_ordered_container() [8/17]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock , class Compare , class Allocator >
template<class InputIt >
beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::aged_ordered_container ( InputIt  first,
InputIt  last,
clock_type clock,
Allocator const &  alloc 
)

Definition at line 1116 of file aged_ordered_container.h.

◆ aged_ordered_container() [9/17]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock , class Compare , class Allocator >
template<class InputIt >
beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::aged_ordered_container ( InputIt  first,
InputIt  last,
clock_type clock,
Compare const &  comp,
Allocator const &  alloc 
)

Definition at line 1128 of file aged_ordered_container.h.

◆ aged_ordered_container() [10/17]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock , class Compare , class Allocator >
beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::aged_ordered_container ( aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator > const &  other)

Definition at line 1140 of file aged_ordered_container.h.

◆ aged_ordered_container() [11/17]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock , class Compare , class Allocator >
beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::aged_ordered_container ( aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator > const &  other,
Allocator const &  alloc 
)

Definition at line 1153 of file aged_ordered_container.h.

◆ aged_ordered_container() [12/17]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock , class Compare , class Allocator >
beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::aged_ordered_container ( aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator > &&  other)

Definition at line 1167 of file aged_ordered_container.h.

◆ aged_ordered_container() [13/17]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock , class Compare , class Allocator >
beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::aged_ordered_container ( aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator > &&  other,
Allocator const &  alloc 
)

Definition at line 1175 of file aged_ordered_container.h.

◆ aged_ordered_container() [14/17]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock , class Compare , class Allocator >
beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::aged_ordered_container ( std::initializer_list< value_type init,
clock_type clock 
)

Definition at line 1191 of file aged_ordered_container.h.

◆ aged_ordered_container() [15/17]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock , class Compare , class Allocator >
beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::aged_ordered_container ( std::initializer_list< value_type init,
clock_type clock,
Compare const &  comp 
)

Definition at line 1200 of file aged_ordered_container.h.

◆ aged_ordered_container() [16/17]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock , class Compare , class Allocator >
beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::aged_ordered_container ( std::initializer_list< value_type init,
clock_type clock,
Allocator const &  alloc 
)

Definition at line 1210 of file aged_ordered_container.h.

◆ aged_ordered_container() [17/17]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock , class Compare , class Allocator >
beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::aged_ordered_container ( std::initializer_list< value_type init,
clock_type clock,
Compare const &  comp,
Allocator const &  alloc 
)

Definition at line 1220 of file aged_ordered_container.h.

◆ ~aged_ordered_container()

template<bool IsMulti, bool IsMap, class Key , class T , class Clock , class Compare , class Allocator >
beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::~aged_ordered_container ( )

Definition at line 1231 of file aged_ordered_container.h.

Member Function Documentation

◆ extract()

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
static Key const & beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::extract ( value_type const &  value)
staticprivate

Definition at line 80 of file aged_ordered_container.h.

◆ new_element()

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
template<class... Args>
element * beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::new_element ( Args &&...  args)
private

Definition at line 322 of file aged_ordered_container.h.

◆ delete_element()

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
void beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::delete_element ( element const *  p)
private

Definition at line 345 of file aged_ordered_container.h.

◆ unlink_and_delete_element()

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
void beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::unlink_and_delete_element ( element const *  p)
private

Definition at line 352 of file aged_ordered_container.h.

◆ operator=() [1/3]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock , class Compare , class Allocator >
auto beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::operator= ( aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator > const &  other)

Definition at line 1238 of file aged_ordered_container.h.

◆ operator=() [2/3]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock , class Compare , class Allocator >
auto beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::operator= ( aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator > &&  other)

Definition at line 1252 of file aged_ordered_container.h.

◆ operator=() [3/3]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock , class Compare , class Allocator >
auto beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::operator= ( std::initializer_list< value_type init)

Definition at line 1264 of file aged_ordered_container.h.

◆ get_allocator()

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
allocator_type beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::get_allocator ( ) const

Definition at line 555 of file aged_ordered_container.h.

◆ clock() [1/2]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
clock_type & beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::clock ( )

Definition at line 561 of file aged_ordered_container.h.

◆ clock() [2/2]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
clock_type const & beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::clock ( ) const

Definition at line 567 of file aged_ordered_container.h.

◆ at() [1/3]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock , class Compare , class Allocator >
template<class K , bool maybe_multi, bool maybe_map, class >
std::conditional< IsMap, T, void * >::type & beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::at ( K const &  k)

Definition at line 1277 of file aged_ordered_container.h.

◆ at() [2/3]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
template<class K , bool maybe_multi = IsMulti, bool maybe_map = IsMap, class = typename std::enable_if<maybe_map && !maybe_multi>::type>
std::conditional< IsMap, T, void * >::type const & beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::at ( K const &  k) const

◆ operator[]() [1/2]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock , class Compare , class Allocator >
template<bool maybe_multi, bool maybe_map, class >
std::conditional< IsMap, T, void * >::type & beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::operator[] ( Key const &  key)

Definition at line 1299 of file aged_ordered_container.h.

◆ operator[]() [2/2]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock , class Compare , class Allocator >
template<bool maybe_multi, bool maybe_map, class >
std::conditional< IsMap, T, void * >::type & beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::operator[] ( Key &&  key)

Definition at line 1316 of file aged_ordered_container.h.

◆ begin() [1/2]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
iterator beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::begin ( )

Definition at line 615 of file aged_ordered_container.h.

◆ begin() [2/2]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
const_iterator beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::begin ( ) const

Definition at line 621 of file aged_ordered_container.h.

◆ cbegin()

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
const_iterator beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::cbegin ( ) const

Definition at line 627 of file aged_ordered_container.h.

◆ end() [1/2]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
iterator beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::end ( )

Definition at line 633 of file aged_ordered_container.h.

◆ end() [2/2]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
const_iterator beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::end ( ) const

Definition at line 639 of file aged_ordered_container.h.

◆ cend()

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
const_iterator beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::cend ( ) const

Definition at line 645 of file aged_ordered_container.h.

◆ rbegin() [1/2]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
reverse_iterator beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::rbegin ( )

Definition at line 651 of file aged_ordered_container.h.

◆ rbegin() [2/2]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
const_reverse_iterator beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::rbegin ( ) const

Definition at line 657 of file aged_ordered_container.h.

◆ crbegin()

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
const_reverse_iterator beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::crbegin ( ) const

Definition at line 663 of file aged_ordered_container.h.

◆ rend() [1/2]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
reverse_iterator beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::rend ( )

Definition at line 669 of file aged_ordered_container.h.

◆ rend() [2/2]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
const_reverse_iterator beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::rend ( ) const

Definition at line 675 of file aged_ordered_container.h.

◆ crend()

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
const_reverse_iterator beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::crend ( ) const

Definition at line 681 of file aged_ordered_container.h.

◆ iterator_to() [1/2]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
iterator beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::iterator_to ( value_type value)

Definition at line 687 of file aged_ordered_container.h.

◆ iterator_to() [2/2]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
const_iterator beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::iterator_to ( value_type const &  value) const

Definition at line 695 of file aged_ordered_container.h.

◆ empty()

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
bool beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::empty ( ) const
noexcept

Definition at line 709 of file aged_ordered_container.h.

◆ size()

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
size_type beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::size ( ) const
noexcept

Definition at line 715 of file aged_ordered_container.h.

◆ max_size()

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
size_type beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::max_size ( ) const
noexcept

Definition at line 721 of file aged_ordered_container.h.

◆ clear()

template<bool IsMulti, bool IsMap, class Key , class T , class Clock , class Compare , class Allocator >
void beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::clear ( )

Definition at line 1335 of file aged_ordered_container.h.

◆ insert() [1/12]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock , class Compare , class Allocator >
template<bool maybe_multi>
auto beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::insert ( value_type const &  value) -> typename std::enable_if<!maybe_multi, std::pair<iterator, bool>>::type

Definition at line 1347 of file aged_ordered_container.h.

◆ insert() [2/12]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
template<bool maybe_multi = IsMulti>
auto beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::insert ( value_type const &  value) -> typename std::enable_if< maybe_multi, iterator >::type

◆ insert() [3/12]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock , class Compare , class Allocator >
template<bool maybe_multi, bool maybe_map>
auto beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::insert ( value_type &&  value) -> typename std::enable_if<!maybe_multi && !maybe_map, std::pair<iterator, bool>>::type

Definition at line 1380 of file aged_ordered_container.h.

◆ insert() [4/12]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
template<bool maybe_multi = IsMulti, bool maybe_map = IsMap>
auto beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::insert ( value_type &&  value) -> typename std::enable_if< maybe_multi &&!maybe_map, iterator >::type

◆ insert() [5/12]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock , class Compare , class Allocator >
template<bool maybe_multi>
auto beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::insert ( const_iterator  hint,
value_type const &  value 
) -> typename std::enable_if<!maybe_multi, iterator>::type

Definition at line 1415 of file aged_ordered_container.h.

◆ insert() [6/12]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
template<bool maybe_multi = IsMulti>
std::enable_if< maybe_multi, iterator >::type beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::insert ( const_iterator  ,
value_type const &  value 
)

Definition at line 765 of file aged_ordered_container.h.

◆ insert() [7/12]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock , class Compare , class Allocator >
template<bool maybe_multi>
auto beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::insert ( const_iterator  hint,
value_type &&  value 
) -> typename std::enable_if<!maybe_multi, iterator>::type

Definition at line 1435 of file aged_ordered_container.h.

◆ insert() [8/12]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
template<bool maybe_multi = IsMulti>
std::enable_if< maybe_multi, iterator >::type beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::insert ( const_iterator  ,
value_type &&  value 
)

Definition at line 779 of file aged_ordered_container.h.

◆ insert() [9/12]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
template<class P , bool maybe_map = IsMap>
std::enable_if< maybe_map &&std::is_constructible< value_type, P && >::value, typenamestd::conditional< IsMulti, iterator, std::pair< iterator, bool > >::type >::type beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::insert ( P &&  value)

Definition at line 790 of file aged_ordered_container.h.

◆ insert() [10/12]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
template<class P , bool maybe_map = IsMap>
std::enable_if< maybe_map &&std::is_constructible< value_type, P && >::value, typenamestd::conditional< IsMulti, iterator, std::pair< iterator, bool > >::type >::type beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::insert ( const_iterator  hint,
P &&  value 
)

Definition at line 800 of file aged_ordered_container.h.

◆ insert() [11/12]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
template<class InputIt >
void beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::insert ( InputIt  first,
InputIt  last 
)

Definition at line 807 of file aged_ordered_container.h.

◆ insert() [12/12]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
void beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::insert ( std::initializer_list< value_type init)

Definition at line 814 of file aged_ordered_container.h.

◆ emplace() [1/2]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock , class Compare , class Allocator >
template<bool maybe_multi, class... Args>
auto beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::emplace ( Args &&...  args) -> typename std::enable_if<!maybe_multi, std::pair<iterator, bool>>::type

Definition at line 1455 of file aged_ordered_container.h.

◆ emplace() [2/2]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
template<bool maybe_multi = IsMulti, class... Args>
auto beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::emplace ( Args &&...  args) -> typename std::enable_if< maybe_multi, iterator >::type

◆ emplace_hint() [1/2]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock , class Compare , class Allocator >
template<bool maybe_multi, class... Args>
auto beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::emplace_hint ( const_iterator  hint,
Args &&...  args 
) -> typename std::enable_if<!maybe_multi, std::pair<iterator, bool>>::type

Definition at line 1491 of file aged_ordered_container.h.

◆ emplace_hint() [2/2]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
template<bool maybe_multi = IsMulti, class... Args>
std::enable_if< maybe_multi, iterator >::type beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::emplace_hint ( const_iterator  ,
Args &&...  args 
)

Definition at line 838 of file aged_ordered_container.h.

◆ erase() [1/3]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock , class Compare , class Allocator >
template<bool is_const, class Iterator , class >
beast::detail::aged_container_iterator< false, Iterator > beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::erase ( beast::detail::aged_container_iterator< is_const, Iterator >  pos)

Definition at line 1513 of file aged_ordered_container.h.

◆ erase() [2/3]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock , class Compare , class Allocator >
template<bool is_const, class Iterator , class >
beast::detail::aged_container_iterator< false, Iterator > beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::erase ( beast::detail::aged_container_iterator< is_const, Iterator >  first,
beast::detail::aged_container_iterator< is_const, Iterator >  last 
)

Definition at line 1523 of file aged_ordered_container.h.

◆ erase() [3/3]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock , class Compare , class Allocator >
template<class K >
auto beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::erase ( K const &  k) -> size_type

Definition at line 1536 of file aged_ordered_container.h.

◆ swap()

template<bool IsMulti, bool IsMap, class Key , class T , class Clock , class Compare , class Allocator >
void beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::swap ( aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator > &  other)
noexcept

Definition at line 1556 of file aged_ordered_container.h.

◆ touch() [1/4]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
template<bool is_const, class Iterator , class = std::enable_if_t<!is_boost_reverse_iterator<Iterator>::value>>
void beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::touch ( beast::detail::aged_container_iterator< is_const, Iterator >  pos)

Definition at line 869 of file aged_ordered_container.h.

◆ touch() [2/4]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
template<class K >
size_type beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::touch ( K const &  k)

◆ count()

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
template<class K >
size_type beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::count ( K const &  k) const

Definition at line 887 of file aged_ordered_container.h.

◆ find() [1/2]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
template<class K >
iterator beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::find ( K const &  k)

Definition at line 895 of file aged_ordered_container.h.

◆ find() [2/2]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
template<class K >
const_iterator beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::find ( K const &  k) const

Definition at line 903 of file aged_ordered_container.h.

◆ equal_range() [1/2]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
template<class K >
std::pair< iterator, iterator > beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::equal_range ( K const &  k)

Definition at line 911 of file aged_ordered_container.h.

◆ equal_range() [2/2]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
template<class K >
std::pair< const_iterator, const_iterator > beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::equal_range ( K const &  k) const

Definition at line 920 of file aged_ordered_container.h.

◆ lower_bound() [1/2]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
template<class K >
iterator beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::lower_bound ( K const &  k)

Definition at line 929 of file aged_ordered_container.h.

◆ lower_bound() [2/2]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
template<class K >
const_iterator beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::lower_bound ( K const &  k) const

Definition at line 937 of file aged_ordered_container.h.

◆ upper_bound() [1/2]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
template<class K >
iterator beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::upper_bound ( K const &  k)

Definition at line 945 of file aged_ordered_container.h.

◆ upper_bound() [2/2]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
template<class K >
const_iterator beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::upper_bound ( K const &  k) const

Definition at line 953 of file aged_ordered_container.h.

◆ key_comp()

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
key_compare beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::key_comp ( ) const

Definition at line 965 of file aged_ordered_container.h.

◆ value_comp()

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
value_compare beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::value_comp ( ) const

Definition at line 972 of file aged_ordered_container.h.

◆ operator==()

template<bool IsMulti, bool IsMap, class Key , class T , class Clock , class Compare , class Allocator >
template<bool OtherIsMulti, bool OtherIsMap, class OtherT , class OtherDuration , class OtherAllocator >
bool beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::operator== ( aged_ordered_container< OtherIsMulti, OtherIsMap, Key, OtherT, OtherDuration, Compare, OtherAllocator > const &  other) const

Definition at line 1586 of file aged_ordered_container.h.

◆ operator!=()

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
template<bool OtherIsMulti, bool OtherIsMap, class OtherT , class OtherDuration , class OtherAllocator >
bool beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::operator!= ( aged_ordered_container< OtherIsMulti, OtherIsMap, Key, OtherT, OtherDuration, Compare, OtherAllocator > const &  other) const

Definition at line 995 of file aged_ordered_container.h.

◆ operator<()

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
template<bool OtherIsMulti, bool OtherIsMap, class OtherT , class OtherDuration , class OtherAllocator >
bool beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::operator< ( aged_ordered_container< OtherIsMulti, OtherIsMap, Key, OtherT, OtherDuration, Compare, OtherAllocator > const &  other) const

Definition at line 1003 of file aged_ordered_container.h.

◆ operator<=()

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
template<bool OtherIsMulti, bool OtherIsMap, class OtherT , class OtherDuration , class OtherAllocator >
bool beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::operator<= ( aged_ordered_container< OtherIsMulti, OtherIsMap, Key, OtherT, OtherDuration, Compare, OtherAllocator > const &  other) const

Definition at line 1013 of file aged_ordered_container.h.

◆ operator>()

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
template<bool OtherIsMulti, bool OtherIsMap, class OtherT , class OtherDuration , class OtherAllocator >
bool beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::operator> ( aged_ordered_container< OtherIsMulti, OtherIsMap, Key, OtherT, OtherDuration, Compare, OtherAllocator > const &  other) const

Definition at line 1023 of file aged_ordered_container.h.

◆ operator>=()

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
template<bool OtherIsMulti, bool OtherIsMap, class OtherT , class OtherDuration , class OtherAllocator >
bool beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::operator>= ( aged_ordered_container< OtherIsMulti, OtherIsMap, Key, OtherT, OtherDuration, Compare, OtherAllocator > const &  other) const

Definition at line 1032 of file aged_ordered_container.h.

◆ touch() [3/4]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock , class Compare , class Allocator >
template<bool is_const, class Iterator , class >
void beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::touch ( beast::detail::aged_container_iterator< is_const, Iterator >  pos,
typename clock_type::time_point const &  now 
)
private

Definition at line 1609 of file aged_ordered_container.h.

◆ swap_data() [1/2]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock , class Compare , class Allocator >
template<bool maybe_propagate>
std::enable_if<!maybe_propagate >::type beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::swap_data ( aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator > &  other)
privatenoexcept

Definition at line 1622 of file aged_ordered_container.h.

◆ swap_data() [2/2]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
template<bool maybe_propagate = std::allocator_traits<Allocator>::propagate_on_container_swap::value>
std::enable_if<!maybe_propagate >::type beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::swap_data ( aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator > &  other)
privatenoexcept

◆ at() [3/3]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
template<class K , bool maybe_multi, bool maybe_map, class >
std::conditional< IsMap, T, void * >::type const & beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::at ( K const &  k) const

Definition at line 1288 of file aged_ordered_container.h.

◆ touch() [4/4]

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
template<class K >
auto beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::touch ( K const &  k) -> size_type

Definition at line 1568 of file aged_ordered_container.h.

Member Data Documentation

◆ chronological

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
class beast::detail::aged_ordered_container::chronological_t beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::chronological

◆ m_config

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
config_t beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::m_config
private

Definition at line 1054 of file aged_ordered_container.h.

◆ m_cont

template<bool IsMulti, bool IsMap, class Key , class T , class Clock = std::chrono::steady_clock, class Compare = std::less<Key>, class Allocator = std::allocator<typename std::conditional<IsMap, std::pair<Key const, T>, Key>::type>>
cont_type beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::m_cont
mutableprivate

Definition at line 1055 of file aged_ordered_container.h.