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 (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
 
AtomicFlagsoperator= (Flags< Enum >)
 
AtomicFlagsStore (Flags< Enum >, std::memory_order=std::memory_order_seq_cst)
 
Flags< Enum > Exchange (Flags< Enum >)
 
AtomicFlagsoperator|= (Flags< Enum >)
 
AtomicFlagsoperator&= (Flags< Enum >)
 
AtomicFlagsClear (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/3]

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

Definition at line 70 of file flags.hpp.

◆ AtomicFlags() [2/3]

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

Definition at line 221 of file flags.hpp.

◆ AtomicFlags() [3/3]

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

Definition at line 226 of file flags.hpp.

Member Function Documentation

◆ Clear()

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

Definition at line 275 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 304 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 325 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 296 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 312 of file flags.hpp.

◆ Exchange()

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

Definition at line 258 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 286 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 291 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 281 of file flags.hpp.

◆ GetValue()

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

Definition at line 358 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 241 of file flags.hpp.

◆ operator bool()

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

Definition at line 231 of file flags.hpp.

◆ operator Flags< Enum >()

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

Definition at line 236 of file flags.hpp.

◆ operator!=()

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

Definition at line 353 of file flags.hpp.

◆ operator&()

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

Definition at line 343 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.

◆ operator=()

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

Definition at line 246 of file flags.hpp.

◆ operator==()

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

Definition at line 348 of file flags.hpp.

◆ operator|()

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

Definition at line 338 of file flags.hpp.

◆ operator|=()

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

Definition at line 263 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 252 of file flags.hpp.


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