userver: utils::AtomicFlags< Enum > Class Template Reference
⚠️ This is the documentation for an old userver version. Click here to switch to the latest version.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
utils::AtomicFlags< Enum > Class Template Reference

Wrapper to extend enum with atomic flags interface. More...

#include <userver/utils/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< EnumLoad (std::memory_order=std::memory_order_seq_cst) const
 
AtomicFlagsoperator= (Flags< Enum >)
 
AtomicFlagsStore (Flags< Enum >, std::memory_order=std::memory_order_seq_cst)
 
Flags< EnumExchange (Flags< Enum >)
 
AtomicFlagsoperator|= (Flags< Enum >)
 
AtomicFlagsoperator&= (Flags< Enum >)
 
AtomicFlagsClear (Flags< Enum >)
 
Flags< EnumFetchOr (Flags< Enum >, std::memory_order=std::memory_order_seq_cst)
 
Flags< EnumFetchAnd (Flags< Enum >, std::memory_order=std::memory_order_seq_cst)
 
Flags< EnumFetchClear (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< Enumoperator| (Flags< Enum >) const
 
Flags< Enumoperator& (Flags< Enum >) const
 
bool operator== (Flags< Enum >) const
 
bool operator!= (Flags< Enum >) const
 
ValueType GetValue ()
 

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.

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 214 of file flags.hpp.

◆ AtomicFlags() [3/3]

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

Definition at line 218 of file flags.hpp.

Member Function Documentation

◆ Clear()

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

Definition at line 267 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 302 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 291 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 313 of file flags.hpp.

◆ Exchange()

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

Definition at line 250 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 279 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 273 of file flags.hpp.

◆ GetValue()

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

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

◆ operator bool()

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

Definition at line 222 of file flags.hpp.

◆ operator Flags< Enum >()

Definition at line 227 of file flags.hpp.

◆ operator!=()

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

Definition at line 352 of file flags.hpp.

◆ operator&()

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

Definition at line 342 of file flags.hpp.

◆ operator&=()

Definition at line 261 of file flags.hpp.

◆ operator=()

Definition at line 237 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|=()

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


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