MySQL 8.4.2
Source Code Documentation
|
Basic Concurrent Map. More...
#include <connection_container.h>
Classes | |
class | Bucket |
Public Types | |
using | key_type = Key |
using | mapped_type = Value |
using | hash_type = Hash |
using | value_type = typename std::map< Key, Value >::value_type |
Public Member Functions | |
concurrent_map (unsigned num_buckets=kDefaultNumberOfBucket, const Hash &hasher=Hash()) | |
concurrent_map (const concurrent_map &other)=delete | |
concurrent_map & | operator= (const concurrent_map &other)=delete |
template<typename Predicate > | |
void | for_one (const Key &key, Predicate &p) |
template<typename Predicate > | |
void | for_each (Predicate p) |
void | put (const Key &key, Value &&value) |
void | erase (const Key &key) |
std::size_t | size () const |
bool | empty () const |
Private Member Functions | |
Bucket & | get_bucket (const Key &key) |
const Bucket & | get_bucket (const Key &key) const |
Private Attributes | |
std::vector< Bucket > | buckets_ |
Hash | hasher_ |
Static Private Attributes | |
static const unsigned | kDefaultNumberOfBucket = 127 |
Basic Concurrent Map.
The concurrent_map is a hash-map, with fixed number of buckets. The number of buckets can be specified in constructor parameter (num_buckets), by default is set to 23.
using concurrent_map< Key, Value, Hash >::hash_type = Hash |
using concurrent_map< Key, Value, Hash >::key_type = Key |
using concurrent_map< Key, Value, Hash >::mapped_type = Value |
using concurrent_map< Key, Value, Hash >::value_type = typename std::map<Key, Value>::value_type |
|
inline |
|
delete |
|
inline |
|
inline |
|
inline |
|
inline |
|
inlineprivate |
|
inlineprivate |
|
delete |
|
inline |
|
inline |
|
private |
|
private |
|
staticprivate |