Tervel  1.0.0
A collection of wait-free containers and algorithms.
Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
tervel::containers::wf::HashMap< Key, Value, Functor >::ValueAccessor Class Reference

This class is used to safe guard access to values. More...

#include <wf_hash_map.h>

Public Member Functions

 ValueAccessor ()
 
 ~ValueAccessor ()
 
Valuevalue ()
 
bool valid ()
 
void reset ()
 Resets this value accessors, decrementing the access_count and clearing the variables. More...
 

Private Member Functions

void init (Value *value, std::atomic< int64_t > *access_count)
 Initializes the value accessor. More...
 

Private Attributes

std::atomic< int64_t > * access_count_
 
Valuevalue_
 

Friends

class HashMap
 

Detailed Description

template<class Key, class Value, class Functor = default_functor<Key, Value>>
class tervel::containers::wf::HashMap< Key, Value, Functor >::ValueAccessor

This class is used to safe guard access to values.

Before it is initialized the referenced data_node's access counter would have been incremented.

Constructor & Destructor Documentation

template<class Key , class Value , class Functor = default_functor<Key, Value>>
tervel::containers::wf::HashMap< Key, Value, Functor >::ValueAccessor::ValueAccessor ( )
inline
template<class Key , class Value , class Functor = default_functor<Key, Value>>
tervel::containers::wf::HashMap< Key, Value, Functor >::ValueAccessor::~ValueAccessor ( )
inline

Member Function Documentation

template<class Key , class Value , class Functor = default_functor<Key, Value>>
void tervel::containers::wf::HashMap< Key, Value, Functor >::ValueAccessor::init ( Value value,
std::atomic< int64_t > *  access_count 
)
inlineprivate

Initializes the value accessor.

Parameters
valuethe address of the value
access_countthe address of the value's access_count
template<class Key , class Value , class Functor = default_functor<Key, Value>>
void tervel::containers::wf::HashMap< Key, Value, Functor >::ValueAccessor::reset ( )
inline

Resets this value accessors, decrementing the access_count and clearing the variables.

template<class Key , class Value , class Functor = default_functor<Key, Value>>
bool tervel::containers::wf::HashMap< Key, Value, Functor >::ValueAccessor::valid ( )
inline
Returns
whether or not this was initialized.
template<class Key , class Value , class Functor = default_functor<Key, Value>>
Value* tervel::containers::wf::HashMap< Key, Value, Functor >::ValueAccessor::value ( )
inline
Returns
the address of the value in the data_node.

Friends And Related Function Documentation

template<class Key , class Value , class Functor = default_functor<Key, Value>>
friend class HashMap
friend

Member Data Documentation

template<class Key , class Value , class Functor = default_functor<Key, Value>>
std::atomic<int64_t>* tervel::containers::wf::HashMap< Key, Value, Functor >::ValueAccessor::access_count_
private
template<class Key , class Value , class Functor = default_functor<Key, Value>>
Value* tervel::containers::wf::HashMap< Key, Value, Functor >::ValueAccessor::value_
private

The documentation for this class was generated from the following file: