rippled
Loading...
Searching...
No Matches
UnorderedContainers.h
1#ifndef XRPL_BASICS_UNORDEREDCONTAINERS_H_INCLUDED
2#define XRPL_BASICS_UNORDEREDCONTAINERS_H_INCLUDED
3
4#include <xrpl/basics/hardened_hash.h>
5#include <xrpl/basics/partitioned_unordered_map.h>
6#include <xrpl/beast/hash/hash_append.h>
7#include <xrpl/beast/hash/uhash.h>
8#include <xrpl/beast/hash/xxhasher.h>
9
10#include <unordered_map>
11#include <unordered_set>
12
25namespace ripple {
26
27// hash containers
28
29template <
30 class Key,
31 class Value,
32 class Hash = beast::uhash<>,
33 class Pred = std::equal_to<Key>,
36
37template <
38 class Key,
39 class Value,
40 class Hash = beast::uhash<>,
41 class Pred = std::equal_to<Key>,
45
46template <
47 class Value,
48 class Hash = beast::uhash<>,
49 class Pred = std::equal_to<Value>,
50 class Allocator = std::allocator<Value>>
52
53template <
54 class Value,
55 class Hash = beast::uhash<>,
56 class Pred = std::equal_to<Value>,
57 class Allocator = std::allocator<Value>>
59
60// hardened_hash containers
61
63
64template <
65 class Key,
66 class Value,
67 class Hash = hardened_hash<strong_hash>,
68 class Pred = std::equal_to<Key>,
71
72template <
73 class Key,
74 class Value,
75 class Hash = hardened_hash<strong_hash>,
76 class Pred = std::equal_to<Key>,
80
81template <
82 class Key,
83 class Value,
84 class Hash = hardened_hash<strong_hash>,
85 class Pred = std::equal_to<Key>,
89
90template <
91 class Value,
92 class Hash = hardened_hash<strong_hash>,
93 class Pred = std::equal_to<Value>,
94 class Allocator = std::allocator<Value>>
96
97template <
98 class Value,
99 class Hash = hardened_hash<strong_hash>,
100 class Pred = std::equal_to<Value>,
101 class Allocator = std::allocator<Value>>
104
105} // namespace ripple
106
107#endif
Seed functor once per construction.
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6