10#include "ll/api/data/ConcurrentPriorityQueue.h"
12#include "concurrentqueue.h"
13#include "parallel_hashmap/btree.h"
14#include "parallel_hashmap/phmap.h"
20 using Ts::operator()...;
24 using is_transparent = void;
25 using Ts::operator()...;
28template <
class Key,
class... Rests>
29using DenseSet = ::phmap::parallel_flat_hash_set<Key, Rests...>;
30template <
class Key,
class Value,
class... Rests>
31using DenseMap = ::phmap::parallel_flat_hash_map<Key, Value, Rests...>;
33template <
class Key,
class... Rests>
34using SmallDenseSet = ::phmap::flat_hash_set<Key, Rests...>;
35template <
class Key,
class Value,
class... Rests>
36using SmallDenseMap = ::phmap::flat_hash_map<Key, Value, Rests...>;
38template <
class Key,
class... Rests>
39using DenseNodeSet = ::phmap::parallel_node_hash_set<Key, Rests...>;
40template <
class Key,
class Value,
class... Rests>
41using DenseNodeMap = ::phmap::parallel_node_hash_map<Key, Value, Rests...>;
43template <
class Key,
class... Rests>
44using SmallDenseNodeSet = ::phmap::node_hash_set<Key, Rests...>;
45template <
class Key,
class Value,
class... Rests>
46using SmallDenseNodeMap = ::phmap::node_hash_map<Key, Value, Rests...>;
48template <
class Key,
class... Rests>
49using OrderedSet = ::phmap::btree_set<Key, Rests...>;
50template <
class Key,
class Value,
class... Rests>
51using OrderedMap = ::phmap::btree_map<Key, Value, Rests...>;
53template <
class Key,
class... Rests>
54using OrderedNodeSet = ::std::set<Key, Rests...>;
55template <
class Key,
class Value,
class... Rests>
56using OrderedNodeMap = ::std::map<Key, Value, Rests...>;
58template <
class Key,
class... Rests>
59using OrderedMultiSet = ::phmap::btree_multiset<Key, Rests...>;
60template <
class Key,
class Value,
class... Rests>
61using OrderedMultiMap = ::phmap::btree_multimap<Key, Value, Rests...>;
63template <
class Key,
class... Rests>
64using OrderedNodeMultiSet = ::std::multiset<Key, Rests...>;
65template <
class Key,
class Value,
class... Rests>
66using OrderedNodeMultiMap = ::std::multimap<Key, Value, Rests...>;
70 class Hash = ::phmap::priv::hash_default_hash<Key>,
71 class Eq = ::phmap::priv::hash_default_eq<Key>,
72 class Alloc = ::std::allocator<Key>,
74 class Mutex = std::shared_mutex>
75using ConcurrentDenseSet = ::phmap::parallel_flat_hash_set<Key, Hash, Eq, Alloc, N, Mutex>;
79 class Hash = ::phmap::priv::hash_default_hash<Key>,
80 class Eq = ::phmap::priv::hash_default_eq<Key>,
81 class Alloc = ::std::allocator<::std::pair<Key const, Value>>,
83 class Mutex = std::shared_mutex>
84using ConcurrentDenseMap = ::phmap::parallel_flat_hash_map<Key, Value, Hash, Eq, Alloc, N, Mutex>;
88 class Hash = ::phmap::priv::hash_default_hash<Key>,
89 class Eq = ::phmap::priv::hash_default_eq<Key>,
90 class Alloc = ::std::allocator<Key>,
92 class Mutex = std::shared_mutex>
93using ConcurrentDenseNodeSet = ::phmap::parallel_node_hash_set<Key, Hash, Eq, Alloc, N, Mutex>;
97 class Hash = ::phmap::priv::hash_default_hash<Key>,
98 class Eq = ::phmap::priv::hash_default_eq<Key>,
99 class Alloc = ::std::allocator<::std::pair<Key const, Value>>,
101 class Mutex = std::shared_mutex>
102using ConcurrentDenseNodeMap = ::phmap::parallel_node_hash_map<Key, Value, Hash, Eq, Alloc, N, Mutex>;
104template <
class Value>
105using StringMap = DenseMap<::std::string, Value>;
106template <
class Value>
107using SmallStringMap = SmallDenseMap<::std::string, Value>;
108template <
class Value>
109using StringNodeMap = DenseNodeMap<::std::string, Value>;
110template <
class Value>
111using SmallStringNodeMap = SmallDenseNodeMap<::std::string, Value>;
114using ConcurrentQueue = moodycamel::ConcurrentQueue<T>;
116template <
typename T,
typename C = std::less<T>,
typename A = std::allocator<T>>
Definition ConcurrentPriorityQueue.h:208
Definition Containers.h:19
Definition Containers.h:23