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 >
constexpr utils::AtomicFlags< Enum >::AtomicFlags ( )
inlineconstexpr

Definition at line 70 of file flags.hpp.

◆ AtomicFlags() [2/3]

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

Definition at line 219 of file flags.hpp.

◆ AtomicFlags() [3/3]

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

Definition at line 222 of file flags.hpp.

Member Function Documentation

◆ Clear()

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

Definition at line 269 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 298 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 319 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 290 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 306 of file flags.hpp.

◆ Exchange()

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

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

◆ GetValue()

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

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

◆ operator bool()

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

Definition at line 225 of file flags.hpp.

◆ operator Flags< Enum >()

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

Definition at line 230 of file flags.hpp.

◆ operator!=()

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

Definition at line 347 of file flags.hpp.

◆ operator&()

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

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

◆ operator=()

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

Definition at line 240 of file flags.hpp.

◆ operator==()

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

Definition at line 342 of file flags.hpp.

◆ operator|()

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

Definition at line 332 of file flags.hpp.

◆ operator|=()

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

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


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