userver: utils::AtomicFlags< Enum > Class Template Reference
Loading...
Searching...
No Matches
utils::AtomicFlags< Enum > Class Template Reference

#include <userver/utils/flags.hpp>

Detailed Description

template<typename Enum>
class utils::AtomicFlags< Enum >

Wrapper to extend enum with atomic flags interface.

Definition at line 66 of file flags.hpp.

Public Types

using ValueType = std::underlying_type_t<Enum>

Public Member Functions

constexpr AtomicFlags (Flags< Enum >)
constexpr AtomicFlags (Enum)
constexpr AtomicFlags (std::initializer_list< Enum >)
 operator bool () const
 operator Flags< Enum > () const
Flags< Enum > Load (std::memory_order=std::memory_order_seq_cst) const
AtomicFlags & operator= (Flags< Enum >)
AtomicFlags & Store (Flags< Enum >, std::memory_order=std::memory_order_seq_cst)
Flags< Enum > Exchange (Flags< Enum >)
AtomicFlags & operator|= (Flags< Enum >)
AtomicFlags & operator&= (Flags< Enum >)
AtomicFlags & Clear (Flags< Enum >)
Flags< Enum > FetchOr (Flags< Enum >, std::memory_order=std::memory_order_seq_cst)
Flags< Enum > FetchAnd (Flags< Enum >, std::memory_order=std::memory_order_seq_cst)
Flags< Enum > FetchClear (Flags< Enum >, std::memory_order=std::memory_order_seq_cst)
bool CompareExchangeWeak (Flags< Enum > &expected, Flags< Enum > desired, std::memory_order order=std::memory_order_seq_cst)
bool CompareExchangeStrong (Flags< Enum > &expected, Flags< Enum > desired, std::memory_order order=std::memory_order_seq_cst)
bool CompareExchangeWeak (Flags< Enum > &expected, Flags< Enum > desired, std::memory_order success, std::memory_order failure)
bool CompareExchangeStrong (Flags< Enum > &expected, Flags< Enum > desired, std::memory_order success, std::memory_order failure)
Flags< Enum > operator| (Flags< Enum >) const
Flags< Enum > operator& (Flags< Enum >) const
bool operator== (Flags< Enum >) const
bool operator!= (Flags< Enum >) const
ValueType GetValue ()

Member Typedef Documentation

◆ ValueType

template<typename Enum>
using utils::AtomicFlags< Enum >::ValueType = std::underlying_type_t<Enum>

Definition at line 68 of file flags.hpp.

Constructor & Destructor Documentation

◆ AtomicFlags() [1/4]

template<typename Enum>
utils::AtomicFlags< Enum >::AtomicFlags ( )
inlineconstexpr

Definition at line 70 of file flags.hpp.

◆ AtomicFlags() [2/4]

template<typename Enum>
utils::AtomicFlags< Enum >::AtomicFlags ( Flags< Enum > flags)
explicitconstexpr

Definition at line 222 of file flags.hpp.

◆ AtomicFlags() [3/4]

template<typename Enum>
utils::AtomicFlags< Enum >::AtomicFlags ( Enum value)
explicitconstexpr

Definition at line 227 of file flags.hpp.

◆ AtomicFlags() [4/4]

template<typename Enum>
utils::AtomicFlags< Enum >::AtomicFlags ( std::initializer_list< Enum > values)
constexpr

Definition at line 232 of file flags.hpp.

Member Function Documentation

◆ Clear()

template<typename Enum>
AtomicFlags< Enum > & utils::AtomicFlags< Enum >::Clear ( Flags< Enum > flags)

Definition at line 281 of file flags.hpp.

◆ CompareExchangeStrong() [1/2]

template<typename Enum>
bool utils::AtomicFlags< Enum >::CompareExchangeStrong ( Flags< Enum > & expected,
Flags< Enum > desired,
std::memory_order order = std::memory_order_seq_cst )

Definition at line 310 of file flags.hpp.

◆ CompareExchangeStrong() [2/2]

template<typename Enum>
bool utils::AtomicFlags< Enum >::CompareExchangeStrong ( Flags< Enum > & expected,
Flags< Enum > desired,
std::memory_order success,
std::memory_order failure )

Definition at line 331 of file flags.hpp.

◆ CompareExchangeWeak() [1/2]

template<typename Enum>
bool utils::AtomicFlags< Enum >::CompareExchangeWeak ( Flags< Enum > & expected,
Flags< Enum > desired,
std::memory_order order = std::memory_order_seq_cst )

Definition at line 302 of file flags.hpp.

◆ CompareExchangeWeak() [2/2]

template<typename Enum>
bool utils::AtomicFlags< Enum >::CompareExchangeWeak ( Flags< Enum > & expected,
Flags< Enum > desired,
std::memory_order success,
std::memory_order failure )

Definition at line 318 of file flags.hpp.

◆ Exchange()

template<typename Enum>
Flags< Enum > utils::AtomicFlags< Enum >::Exchange ( Flags< Enum > flags)

Definition at line 264 of file flags.hpp.

◆ FetchAnd()

template<typename Enum>
Flags< Enum > utils::AtomicFlags< Enum >::FetchAnd ( Flags< Enum > rhs,
std::memory_order memory_order = std::memory_order_seq_cst )

Definition at line 292 of file flags.hpp.

◆ FetchClear()

template<typename Enum>
Flags< Enum > utils::AtomicFlags< Enum >::FetchClear ( Flags< Enum > flags,
std::memory_order memory_order = std::memory_order_seq_cst )

Definition at line 297 of file flags.hpp.

◆ FetchOr()

template<typename Enum>
Flags< Enum > utils::AtomicFlags< Enum >::FetchOr ( Flags< Enum > rhs,
std::memory_order memory_order = std::memory_order_seq_cst )

Definition at line 287 of file flags.hpp.

◆ GetValue()

template<typename Enum>
AtomicFlags< Enum >::ValueType utils::AtomicFlags< Enum >::GetValue ( )

Definition at line 364 of file flags.hpp.

◆ Load()

template<typename Enum>
Flags< Enum > utils::AtomicFlags< Enum >::Load ( std::memory_order order = std::memory_order_seq_cst) const

Definition at line 247 of file flags.hpp.

◆ operator bool()

template<typename Enum>
utils::AtomicFlags< Enum >::operator bool ( ) const
explicit

Definition at line 237 of file flags.hpp.

◆ operator Flags< Enum >()

template<typename Enum>
utils::AtomicFlags< Enum >::operator Flags< Enum > ( ) const

Definition at line 242 of file flags.hpp.

◆ operator!=()

template<typename Enum>
bool utils::AtomicFlags< Enum >::operator!= ( Flags< Enum > rhs) const

Definition at line 359 of file flags.hpp.

◆ operator&()

template<typename Enum>
Flags< Enum > utils::AtomicFlags< Enum >::operator& ( Flags< Enum > rhs) const

Definition at line 349 of file flags.hpp.

◆ operator&=()

template<typename Enum>
AtomicFlags< Enum > & utils::AtomicFlags< Enum >::operator&= ( Flags< Enum > rhs)

Definition at line 275 of file flags.hpp.

◆ operator=()

template<typename Enum>
AtomicFlags< Enum > & utils::AtomicFlags< Enum >::operator= ( Flags< Enum > rhs)

Definition at line 252 of file flags.hpp.

◆ operator==()

template<typename Enum>
bool utils::AtomicFlags< Enum >::operator== ( Flags< Enum > rhs) const

Definition at line 354 of file flags.hpp.

◆ operator|()

template<typename Enum>
Flags< Enum > utils::AtomicFlags< Enum >::operator| ( Flags< Enum > rhs) const

Definition at line 344 of file flags.hpp.

◆ operator|=()

template<typename Enum>
AtomicFlags< Enum > & utils::AtomicFlags< Enum >::operator|= ( Flags< Enum > rhs)

Definition at line 269 of file flags.hpp.

◆ Store()

template<typename Enum>
AtomicFlags< Enum > & utils::AtomicFlags< Enum >::Store ( Flags< Enum > rhs,
std::memory_order order = std::memory_order_seq_cst )

Definition at line 258 of file flags.hpp.


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