Arbiter
Dependency manager library that supports decentralization
Public Member Functions | List of all members
Arbiter::SharedUserValue< Owner > Class Template Referencefinal

Expresses shared ownership of an opaque user-provided value type, which was originally described in an ArbiterUserValue. More...

Public Member Functions

 SharedUserValue ()=default
 
 SharedUserValue (ArbiterUserValue value)
 
void * data () noexcept
 
const void * data () const noexcept
 
std::string description () const
 
size_t hash () const
 
bool operator!= (const SharedUserValue &other) const
 
bool operator< (const SharedUserValue &other) const
 
bool operator<= (const SharedUserValue &other) const
 
bool operator== (const SharedUserValue &other) const
 
bool operator> (const SharedUserValue &other) const
 
bool operator>= (const SharedUserValue &other) const
 

Detailed Description

template<typename Owner>
class Arbiter::SharedUserValue< Owner >

Expresses shared ownership of an opaque user-provided value type, which was originally described in an ArbiterUserValue.

Owner is a phantom type used to associate the SharedUserValue with its usage in a particular class. This helps prevent two SharedUserValue instances from being compared if they represent conceptually different things (which might crash user code).

Definition at line 28 of file Value.h.

Constructor & Destructor Documentation

§ SharedUserValue() [1/2]

template<typename Owner>
Arbiter::SharedUserValue< Owner >::SharedUserValue ( )
default

§ SharedUserValue() [2/2]

template<typename Owner>
Arbiter::SharedUserValue< Owner >::SharedUserValue ( ArbiterUserValue  value)
explicit

Definition at line 33 of file Value.h.

Member Function Documentation

§ data() [1/2]

template<typename Owner>
void* Arbiter::SharedUserValue< Owner >::data ( )
noexcept

Definition at line 77 of file Value.h.

§ data() [2/2]

template<typename Owner>
const void* Arbiter::SharedUserValue< Owner >::data ( ) const
noexcept

Definition at line 82 of file Value.h.

§ description()

template<typename Owner>
std::string Arbiter::SharedUserValue< Owner >::description ( ) const

Definition at line 87 of file Value.h.

§ hash()

template<typename Owner>
size_t Arbiter::SharedUserValue< Owner >::hash ( ) const

Definition at line 96 of file Value.h.

§ operator!=()

template<typename Owner>
bool Arbiter::SharedUserValue< Owner >::operator!= ( const SharedUserValue< Owner > &  other) const

Definition at line 51 of file Value.h.

§ operator<()

template<typename Owner>
bool Arbiter::SharedUserValue< Owner >::operator< ( const SharedUserValue< Owner > &  other) const

Definition at line 56 of file Value.h.

§ operator<=()

template<typename Owner>
bool Arbiter::SharedUserValue< Owner >::operator<= ( const SharedUserValue< Owner > &  other) const

Definition at line 72 of file Value.h.

§ operator==()

template<typename Owner>
bool Arbiter::SharedUserValue< Owner >::operator== ( const SharedUserValue< Owner > &  other) const

Definition at line 45 of file Value.h.

§ operator>()

template<typename Owner>
bool Arbiter::SharedUserValue< Owner >::operator> ( const SharedUserValue< Owner > &  other) const

Definition at line 62 of file Value.h.

§ operator>=()

template<typename Owner>
bool Arbiter::SharedUserValue< Owner >::operator>= ( const SharedUserValue< Owner > &  other) const

Definition at line 67 of file Value.h.


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