libcopp  1.1.0
Public Types | Public Member Functions | Private Member Functions | Private Attributes
util::lock::atomic_int_type< unsafe_int_type< Ty > > Class Template Reference

#include <atomic_int_type.h>

Collaboration diagram for util::lock::atomic_int_type< unsafe_int_type< Ty > >:
Collaboration graph

Public Types

typedef unsafe_int_type< Ty >::value_type value_type
 

Public Member Functions

 atomic_int_type () UTIL_CONFIG_NOEXCEPT
 
 atomic_int_type (value_type desired) UTIL_CONFIG_NOEXCEPT
 
void store (value_type desired,::util::lock::memory_order order=::util::lock::memory_order_seq_cst) UTIL_CONFIG_NOEXCEPT
 
void store (value_type desired,::util::lock::memory_order order=::util::lock::memory_order_seq_cst) volatile UTIL_CONFIG_NOEXCEPT
 
value_type load (::util::lock::memory_order order=::util::lock::memory_order_seq_cst) const UTIL_CONFIG_NOEXCEPT
 
value_type load (::util::lock::memory_order order=::util::lock::memory_order_seq_cst) const volatile UTIL_CONFIG_NOEXCEPT
 
 operator value_type () const UTIL_CONFIG_NOEXCEPT
 
 operator value_type () const volatile UTIL_CONFIG_NOEXCEPT
 
value_type operator= (value_type desired) UTIL_CONFIG_NOEXCEPT
 
value_type operator= (value_type desired) volatile UTIL_CONFIG_NOEXCEPT
 
value_type operator++ () UTIL_CONFIG_NOEXCEPT
 
value_type operator++ () volatile UTIL_CONFIG_NOEXCEPT
 
value_type operator++ (int) UTIL_CONFIG_NOEXCEPT
 
value_type operator++ (int) volatile UTIL_CONFIG_NOEXCEPT
 
value_type operator-- () UTIL_CONFIG_NOEXCEPT
 
value_type operator-- () volatile UTIL_CONFIG_NOEXCEPT
 
value_type operator-- (int) UTIL_CONFIG_NOEXCEPT
 
value_type operator-- (int) volatile UTIL_CONFIG_NOEXCEPT
 
value_type exchange (value_type desired,::util::lock::memory_order order=::util::lock::memory_order_seq_cst) UTIL_CONFIG_NOEXCEPT
 
value_type exchange (value_type desired,::util::lock::memory_order order=::util::lock::memory_order_seq_cst) volatile UTIL_CONFIG_NOEXCEPT
 
bool compare_exchange_weak (value_type &expected, value_type desired,::util::lock::memory_order success,::util::lock::memory_order failure) UTIL_CONFIG_NOEXCEPT
 
bool compare_exchange_weak (value_type &expected, value_type desired,::util::lock::memory_order success,::util::lock::memory_order failure) volatile UTIL_CONFIG_NOEXCEPT
 
bool compare_exchange_weak (value_type &expected, value_type desired,::util::lock::memory_order order=::util::lock::memory_order_seq_cst) UTIL_CONFIG_NOEXCEPT
 
bool compare_exchange_weak (value_type &expected, value_type desired,::util::lock::memory_order order=::util::lock::memory_order_seq_cst) volatile UTIL_CONFIG_NOEXCEPT
 
bool compare_exchange_strong (value_type &expected, value_type desired,::util::lock::memory_order success,::util::lock::memory_order failure) UTIL_CONFIG_NOEXCEPT
 
bool compare_exchange_strong (value_type &expected, value_type desired,::util::lock::memory_order success,::util::lock::memory_order failure) volatile UTIL_CONFIG_NOEXCEPT
 
bool compare_exchange_strong (value_type &expected, value_type desired,::util::lock::memory_order order=::util::lock::memory_order_seq_cst) UTIL_CONFIG_NOEXCEPT
 
bool compare_exchange_strong (value_type &expected, value_type desired,::util::lock::memory_order order=::util::lock::memory_order_seq_cst) volatile UTIL_CONFIG_NOEXCEPT
 
value_type fetch_add (value_type arg,::util::lock::memory_order order=::util::lock::memory_order_seq_cst) UTIL_CONFIG_NOEXCEPT
 
value_type fetch_add (value_type arg,::util::lock::memory_order order=::util::lock::memory_order_seq_cst) volatile UTIL_CONFIG_NOEXCEPT
 
value_type fetch_sub (value_type arg,::util::lock::memory_order order=::util::lock::memory_order_seq_cst) UTIL_CONFIG_NOEXCEPT
 
value_type fetch_sub (value_type arg,::util::lock::memory_order order=::util::lock::memory_order_seq_cst) volatile UTIL_CONFIG_NOEXCEPT
 
value_type fetch_and (value_type arg,::util::lock::memory_order order=::util::lock::memory_order_seq_cst) UTIL_CONFIG_NOEXCEPT
 
value_type fetch_and (value_type arg,::util::lock::memory_order order=::util::lock::memory_order_seq_cst) volatile UTIL_CONFIG_NOEXCEPT
 
value_type fetch_or (value_type arg,::util::lock::memory_order order=::util::lock::memory_order_seq_cst) UTIL_CONFIG_NOEXCEPT
 
value_type fetch_or (value_type arg,::util::lock::memory_order order=::util::lock::memory_order_seq_cst) volatile UTIL_CONFIG_NOEXCEPT
 
value_type fetch_xor (value_type arg,::util::lock::memory_order order=::util::lock::memory_order_seq_cst) UTIL_CONFIG_NOEXCEPT
 
value_type fetch_xor (value_type arg,::util::lock::memory_order order=::util::lock::memory_order_seq_cst) volatile UTIL_CONFIG_NOEXCEPT
 

Private Member Functions

 atomic_int_type (const atomic_int_type &) UTIL_CONFIG_DELETED_FUNCTION
 
atomic_int_typeoperator= (const atomic_int_type &) UTIL_CONFIG_DELETED_FUNCTION
 
atomic_int_typeoperator= (const atomic_int_type &) volatile UTIL_CONFIG_DELETED_FUNCTION
 
bool cas (value_type &expected, value_type desired) UTIL_CONFIG_NOEXCEPT
 

Private Attributes

value_type data_
 

Detailed Description

template<typename Ty>
class util::lock::atomic_int_type< unsafe_int_type< Ty > >

Definition at line 848 of file atomic_int_type.h.

Member Typedef Documentation

template<typename Ty >
typedef unsafe_int_type<Ty>::value_type util::lock::atomic_int_type< unsafe_int_type< Ty > >::value_type

Definition at line 850 of file atomic_int_type.h.

Constructor & Destructor Documentation

template<typename Ty >
util::lock::atomic_int_type< unsafe_int_type< Ty > >::atomic_int_type ( const atomic_int_type< unsafe_int_type< Ty > > &  )
private
template<typename Ty >
util::lock::atomic_int_type< unsafe_int_type< Ty > >::atomic_int_type ( )
inline

Definition at line 861 of file atomic_int_type.h.

template<typename Ty >
util::lock::atomic_int_type< unsafe_int_type< Ty > >::atomic_int_type ( value_type  desired)
inline

Definition at line 862 of file atomic_int_type.h.

Member Function Documentation

template<typename Ty >
bool util::lock::atomic_int_type< unsafe_int_type< Ty > >::cas ( value_type expected,
value_type  desired 
)
inlineprivate

Definition at line 911 of file atomic_int_type.h.

References util::lock::atomic_int_type< Ty >::data_, and likely.

template<typename Ty >
bool util::lock::atomic_int_type< unsafe_int_type< Ty > >::compare_exchange_strong ( value_type expected,
value_type  desired,
::util::lock::memory_order  success,
::util::lock::memory_order  failure 
)
inline

Definition at line 941 of file atomic_int_type.h.

template<typename Ty >
bool util::lock::atomic_int_type< unsafe_int_type< Ty > >::compare_exchange_strong ( value_type expected,
value_type  desired,
::util::lock::memory_order  success,
::util::lock::memory_order  failure 
) volatile
inline

Definition at line 945 of file atomic_int_type.h.

template<typename Ty >
bool util::lock::atomic_int_type< unsafe_int_type< Ty > >::compare_exchange_strong ( value_type expected,
value_type  desired,
::util::lock::memory_order  order = ::util::lock::memory_order_seq_cst 
)
inline

Definition at line 951 of file atomic_int_type.h.

template<typename Ty >
bool util::lock::atomic_int_type< unsafe_int_type< Ty > >::compare_exchange_strong ( value_type expected,
value_type  desired,
::util::lock::memory_order  order = ::util::lock::memory_order_seq_cst 
) volatile
inline

Definition at line 956 of file atomic_int_type.h.

template<typename Ty >
bool util::lock::atomic_int_type< unsafe_int_type< Ty > >::compare_exchange_weak ( value_type expected,
value_type  desired,
::util::lock::memory_order  success,
::util::lock::memory_order  failure 
)
inline

Definition at line 922 of file atomic_int_type.h.

template<typename Ty >
bool util::lock::atomic_int_type< unsafe_int_type< Ty > >::compare_exchange_weak ( value_type expected,
value_type  desired,
::util::lock::memory_order  success,
::util::lock::memory_order  failure 
) volatile
inline

Definition at line 926 of file atomic_int_type.h.

template<typename Ty >
bool util::lock::atomic_int_type< unsafe_int_type< Ty > >::compare_exchange_weak ( value_type expected,
value_type  desired,
::util::lock::memory_order  order = ::util::lock::memory_order_seq_cst 
)
inline

Definition at line 931 of file atomic_int_type.h.

template<typename Ty >
bool util::lock::atomic_int_type< unsafe_int_type< Ty > >::compare_exchange_weak ( value_type expected,
value_type  desired,
::util::lock::memory_order  order = ::util::lock::memory_order_seq_cst 
) volatile
inline

Definition at line 936 of file atomic_int_type.h.

template<typename Ty >
value_type util::lock::atomic_int_type< unsafe_int_type< Ty > >::exchange ( value_type  desired,
::util::lock::memory_order  order = ::util::lock::memory_order_seq_cst 
)
inline

Definition at line 896 of file atomic_int_type.h.

References util::lock::atomic_int_type< Ty >::data_.

template<typename Ty >
value_type util::lock::atomic_int_type< unsafe_int_type< Ty > >::exchange ( value_type  desired,
::util::lock::memory_order  order = ::util::lock::memory_order_seq_cst 
) volatile
inline

Definition at line 903 of file atomic_int_type.h.

References util::lock::atomic_int_type< Ty >::data_.

template<typename Ty >
value_type util::lock::atomic_int_type< unsafe_int_type< Ty > >::fetch_add ( value_type  arg,
::util::lock::memory_order  order = ::util::lock::memory_order_seq_cst 
)
inline

Definition at line 961 of file atomic_int_type.h.

References util::lock::atomic_int_type< Ty >::data_.

template<typename Ty >
value_type util::lock::atomic_int_type< unsafe_int_type< Ty > >::fetch_add ( value_type  arg,
::util::lock::memory_order  order = ::util::lock::memory_order_seq_cst 
) volatile
inline

Definition at line 968 of file atomic_int_type.h.

References util::lock::atomic_int_type< Ty >::data_.

template<typename Ty >
value_type util::lock::atomic_int_type< unsafe_int_type< Ty > >::fetch_and ( value_type  arg,
::util::lock::memory_order  order = ::util::lock::memory_order_seq_cst 
)
inline

Definition at line 987 of file atomic_int_type.h.

References util::lock::atomic_int_type< Ty >::data_.

template<typename Ty >
value_type util::lock::atomic_int_type< unsafe_int_type< Ty > >::fetch_and ( value_type  arg,
::util::lock::memory_order  order = ::util::lock::memory_order_seq_cst 
) volatile
inline

Definition at line 994 of file atomic_int_type.h.

References util::lock::atomic_int_type< Ty >::data_.

template<typename Ty >
value_type util::lock::atomic_int_type< unsafe_int_type< Ty > >::fetch_or ( value_type  arg,
::util::lock::memory_order  order = ::util::lock::memory_order_seq_cst 
)
inline

Definition at line 1000 of file atomic_int_type.h.

References util::lock::atomic_int_type< Ty >::data_.

template<typename Ty >
value_type util::lock::atomic_int_type< unsafe_int_type< Ty > >::fetch_or ( value_type  arg,
::util::lock::memory_order  order = ::util::lock::memory_order_seq_cst 
) volatile
inline

Definition at line 1007 of file atomic_int_type.h.

References util::lock::atomic_int_type< Ty >::data_.

template<typename Ty >
value_type util::lock::atomic_int_type< unsafe_int_type< Ty > >::fetch_sub ( value_type  arg,
::util::lock::memory_order  order = ::util::lock::memory_order_seq_cst 
)
inline

Definition at line 974 of file atomic_int_type.h.

References util::lock::atomic_int_type< Ty >::data_.

template<typename Ty >
value_type util::lock::atomic_int_type< unsafe_int_type< Ty > >::fetch_sub ( value_type  arg,
::util::lock::memory_order  order = ::util::lock::memory_order_seq_cst 
) volatile
inline

Definition at line 981 of file atomic_int_type.h.

References util::lock::atomic_int_type< Ty >::data_.

template<typename Ty >
value_type util::lock::atomic_int_type< unsafe_int_type< Ty > >::fetch_xor ( value_type  arg,
::util::lock::memory_order  order = ::util::lock::memory_order_seq_cst 
)
inline

Definition at line 1013 of file atomic_int_type.h.

References util::lock::atomic_int_type< Ty >::data_.

template<typename Ty >
value_type util::lock::atomic_int_type< unsafe_int_type< Ty > >::fetch_xor ( value_type  arg,
::util::lock::memory_order  order = ::util::lock::memory_order_seq_cst 
) volatile
inline

Definition at line 1020 of file atomic_int_type.h.

References util::lock::atomic_int_type< Ty >::data_.

template<typename Ty >
value_type util::lock::atomic_int_type< unsafe_int_type< Ty > >::load ( ::util::lock::memory_order  order = ::util::lock::memory_order_seq_cst) const
inline

Definition at line 873 of file atomic_int_type.h.

References util::lock::atomic_int_type< Ty >::data_.

template<typename Ty >
value_type util::lock::atomic_int_type< unsafe_int_type< Ty > >::load ( ::util::lock::memory_order  order = ::util::lock::memory_order_seq_cst) const volatile
inline

Definition at line 876 of file atomic_int_type.h.

References util::lock::atomic_int_type< Ty >::data_.

template<typename Ty >
util::lock::atomic_int_type< unsafe_int_type< Ty > >::operator value_type ( ) const
inline

Definition at line 881 of file atomic_int_type.h.

References util::lock::atomic_int_type< Ty >::load().

template<typename Ty >
util::lock::atomic_int_type< unsafe_int_type< Ty > >::operator value_type ( ) const volatile
inline

Definition at line 882 of file atomic_int_type.h.

References util::lock::atomic_int_type< Ty >::load().

template<typename Ty >
value_type util::lock::atomic_int_type< unsafe_int_type< Ty > >::operator++ ( )
inline

Definition at line 887 of file atomic_int_type.h.

References util::lock::atomic_int_type< Ty >::data_.

template<typename Ty >
value_type util::lock::atomic_int_type< unsafe_int_type< Ty > >::operator++ ( ) volatile
inline

Definition at line 888 of file atomic_int_type.h.

References util::lock::atomic_int_type< Ty >::data_.

template<typename Ty >
value_type util::lock::atomic_int_type< unsafe_int_type< Ty > >::operator++ ( int  )
inline

Definition at line 889 of file atomic_int_type.h.

template<typename Ty >
value_type util::lock::atomic_int_type< unsafe_int_type< Ty > >::operator++ ( int  ) volatile
inline

Definition at line 890 of file atomic_int_type.h.

template<typename Ty >
value_type util::lock::atomic_int_type< unsafe_int_type< Ty > >::operator-- ( )
inline

Definition at line 891 of file atomic_int_type.h.

References util::lock::atomic_int_type< Ty >::data_.

template<typename Ty >
value_type util::lock::atomic_int_type< unsafe_int_type< Ty > >::operator-- ( ) volatile
inline

Definition at line 892 of file atomic_int_type.h.

References util::lock::atomic_int_type< Ty >::data_.

template<typename Ty >
value_type util::lock::atomic_int_type< unsafe_int_type< Ty > >::operator-- ( int  )
inline

Definition at line 893 of file atomic_int_type.h.

template<typename Ty >
value_type util::lock::atomic_int_type< unsafe_int_type< Ty > >::operator-- ( int  ) volatile
inline

Definition at line 894 of file atomic_int_type.h.

template<typename Ty >
atomic_int_type& util::lock::atomic_int_type< unsafe_int_type< Ty > >::operator= ( const atomic_int_type< unsafe_int_type< Ty > > &  )
private
template<typename Ty >
atomic_int_type& util::lock::atomic_int_type< unsafe_int_type< Ty > >::operator= ( const atomic_int_type< unsafe_int_type< Ty > > &  ) volatile
private
template<typename Ty >
value_type util::lock::atomic_int_type< unsafe_int_type< Ty > >::operator= ( value_type  desired)
inline

Definition at line 884 of file atomic_int_type.h.

References util::lock::atomic_int_type< Ty >::store().

template<typename Ty >
value_type util::lock::atomic_int_type< unsafe_int_type< Ty > >::operator= ( value_type  desired) volatile
inline

Definition at line 885 of file atomic_int_type.h.

References util::lock::atomic_int_type< Ty >::store().

template<typename Ty >
void util::lock::atomic_int_type< unsafe_int_type< Ty > >::store ( value_type  desired,
::util::lock::memory_order  order = ::util::lock::memory_order_seq_cst 
)
inline

Definition at line 864 of file atomic_int_type.h.

template<typename Ty >
void util::lock::atomic_int_type< unsafe_int_type< Ty > >::store ( value_type  desired,
::util::lock::memory_order  order = ::util::lock::memory_order_seq_cst 
) volatile
inline

Definition at line 868 of file atomic_int_type.h.

Field Documentation

template<typename Ty >
value_type util::lock::atomic_int_type< unsafe_int_type< Ty > >::data_
private

Definition at line 853 of file atomic_int_type.h.


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