XRootD
Loading...
Searching...
No Matches
XrdSys::RAtomic< T > Class Template Reference

#include <XrdSysRAtomic.hh>

+ Collaboration diagram for XrdSys::RAtomic< T >:

Public Member Functions

 RAtomic ()
 
 RAtomic (T v)
 
compare_exchange_strong (T &v1, T v2, std::memory_order mo1=std::memory_order_relaxed, std::memory_order mo2=std::memory_order_relaxed) noexcept
 
compare_exchange_strong (T &v1, T v2, std::memory_order mo1=std::memory_order_relaxed, std::memory_order mo2=std::memory_order_relaxed) volatile noexcept
 
compare_exchange_weak (T &v1, T v2, std::memory_order mo1=std::memory_order_relaxed, std::memory_order mo2=std::memory_order_relaxed) noexcept
 
compare_exchange_weak (T &v1, T v2, std::memory_order mo1=std::memory_order_relaxed, std::memory_order mo2=std::memory_order_relaxed) volatile noexcept
 
exchange (T v, std::memory_order mo=std::memory_order_relaxed) noexcept
 
exchange (T v, std::memory_order mo=std::memory_order_relaxed) volatile noexcept
 
fetch_and (T v) noexcept
 
fetch_or (T v) noexcept
 
fetch_xor (T v) noexcept
 
 operator T () noexcept
 
 operator T () volatile noexcept
 
operator&= (T v) noexcept
 
operator&= (T v) volatile noexcept
 
operator++ () noexcept
 
operator++ () volatile noexcept
 
operator++ (int) noexcept
 
operator++ (int) volatile noexcept
 
operator+= (T v) noexcept
 
operator+= (T v) volatile noexcept
 
operator-- () noexcept
 
operator-- () volatile noexcept
 
operator-- (int) noexcept
 
operator-- (int) volatile noexcept
 
operator-= (T v) noexcept
 
operator-= (T v) volatile noexcept
 
operator= (T v) noexcept
 
operator= (T v) volatile noexcept
 
operator^= (T v) noexcept
 
operator^= (T v) volatile noexcept
 
operator|= (T v) noexcept
 
operator|= (T v) volatile noexcept
 

Detailed Description

template<typename T>
class XrdSys::RAtomic< T >

Definition at line 25 of file XrdSysRAtomic.hh.

Constructor & Destructor Documentation

◆ RAtomic() [1/2]

template<typename T >
XrdSys::RAtomic< T >::RAtomic ( )
inline

Definition at line 144 of file XrdSysRAtomic.hh.

144{}

◆ RAtomic() [2/2]

template<typename T >
XrdSys::RAtomic< T >::RAtomic ( v)
inline

Definition at line 146 of file XrdSysRAtomic.hh.

146: _m(v) {}

Member Function Documentation

◆ compare_exchange_strong() [1/2]

template<typename T >
T XrdSys::RAtomic< T >::compare_exchange_strong ( T &  v1,
v2,
std::memory_order  mo1 = std::memory_order_relaxed,
std::memory_order  mo2 = std::memory_order_relaxed 
)
inlinenoexcept

Definition at line 114 of file XrdSysRAtomic.hh.

118 {return _m.compare_exchange_strong(v1, v2, mo1, mo2);}

◆ compare_exchange_strong() [2/2]

template<typename T >
T XrdSys::RAtomic< T >::compare_exchange_strong ( T &  v1,
v2,
std::memory_order  mo1 = std::memory_order_relaxed,
std::memory_order  mo2 = std::memory_order_relaxed 
) volatile
inlinenoexcept

Definition at line 120 of file XrdSysRAtomic.hh.

124 {return _m.compare_exchange_strong(v1, v2, mo1, mo2);}

◆ compare_exchange_weak() [1/2]

template<typename T >
T XrdSys::RAtomic< T >::compare_exchange_weak ( T &  v1,
v2,
std::memory_order  mo1 = std::memory_order_relaxed,
std::memory_order  mo2 = std::memory_order_relaxed 
)
inlinenoexcept

Definition at line 126 of file XrdSysRAtomic.hh.

130 {return _m.compare_exchange_weak(v1, v2, mo1, mo2);}

◆ compare_exchange_weak() [2/2]

template<typename T >
T XrdSys::RAtomic< T >::compare_exchange_weak ( T &  v1,
v2,
std::memory_order  mo1 = std::memory_order_relaxed,
std::memory_order  mo2 = std::memory_order_relaxed 
) volatile
inlinenoexcept

Definition at line 132 of file XrdSysRAtomic.hh.

136 {return _m.compare_exchange_weak(v1, v2, mo1, mo2);}

◆ exchange() [1/2]

template<typename T >
T XrdSys::RAtomic< T >::exchange ( v,
std::memory_order  mo = std::memory_order_relaxed 
)
inlinenoexcept

Definition at line 138 of file XrdSysRAtomic.hh.

139 {return _m.exchange(v, mo);}

◆ exchange() [2/2]

template<typename T >
T XrdSys::RAtomic< T >::exchange ( v,
std::memory_order  mo = std::memory_order_relaxed 
) volatile
inlinenoexcept

Definition at line 141 of file XrdSysRAtomic.hh.

142 {return _m.exchange(v, mo);}

◆ fetch_and()

template<typename T >
T XrdSys::RAtomic< T >::fetch_and ( v)
inlinenoexcept

Definition at line 103 of file XrdSysRAtomic.hh.

104 {return _m.fetch_and(v, std::memory_order_relaxed);}

◆ fetch_or()

template<typename T >
T XrdSys::RAtomic< T >::fetch_or ( v)
inlinenoexcept

Definition at line 106 of file XrdSysRAtomic.hh.

107 {return _m.fetch_or (v, std::memory_order_relaxed);}

Referenced by XrdXrootdProtocol::Recycle().

+ Here is the caller graph for this function:

◆ fetch_xor()

template<typename T >
T XrdSys::RAtomic< T >::fetch_xor ( v)
inlinenoexcept

Definition at line 109 of file XrdSysRAtomic.hh.

110 {return _m.fetch_xor(v, std::memory_order_relaxed);}

◆ operator T() [1/2]

template<typename T >
XrdSys::RAtomic< T >::operator T ( )
inlinenoexcept

Definition at line 37 of file XrdSysRAtomic.hh.

38 {return _m.load(std::memory_order_relaxed);}

◆ operator T() [2/2]

template<typename T >
XrdSys::RAtomic< T >::operator T ( ) volatile
inlinenoexcept

Definition at line 40 of file XrdSysRAtomic.hh.

41 {return _m.load(std::memory_order_relaxed);}

◆ operator&=() [1/2]

template<typename T >
T XrdSys::RAtomic< T >::operator&= ( v)
inlinenoexcept

Definition at line 83 of file XrdSysRAtomic.hh.

84 {return _m.fetch_and(v, std::memory_order_relaxed) & v;}

◆ operator&=() [2/2]

template<typename T >
T XrdSys::RAtomic< T >::operator&= ( v) volatile
inlinenoexcept

Definition at line 86 of file XrdSysRAtomic.hh.

87 {return _m.fetch_and(v, std::memory_order_relaxed) & v;}

◆ operator++() [1/4]

template<typename T >
T XrdSys::RAtomic< T >::operator++ ( )
inlinenoexcept

Definition at line 59 of file XrdSysRAtomic.hh.

60 {return _m.fetch_add(1, std::memory_order_relaxed)+1;}

◆ operator++() [2/4]

template<typename T >
T XrdSys::RAtomic< T >::operator++ ( ) volatile
inlinenoexcept

Definition at line 62 of file XrdSysRAtomic.hh.

63 {return _m.fetch_add(1, std::memory_order_relaxed)+1;}

◆ operator++() [3/4]

template<typename T >
T XrdSys::RAtomic< T >::operator++ ( int  )
inlinenoexcept

Definition at line 45 of file XrdSysRAtomic.hh.

46 {return _m.fetch_add(1, std::memory_order_relaxed);}

◆ operator++() [4/4]

template<typename T >
T XrdSys::RAtomic< T >::operator++ ( int  ) volatile
inlinenoexcept

Definition at line 48 of file XrdSysRAtomic.hh.

49 {return _m.fetch_add(1, std::memory_order_relaxed);}

◆ operator+=() [1/2]

template<typename T >
T XrdSys::RAtomic< T >::operator+= ( v)
inlinenoexcept

Definition at line 71 of file XrdSysRAtomic.hh.

72 {return _m.fetch_add(v, std::memory_order_relaxed)+v;}

◆ operator+=() [2/2]

template<typename T >
T XrdSys::RAtomic< T >::operator+= ( v) volatile
inlinenoexcept

Definition at line 74 of file XrdSysRAtomic.hh.

75 {return _m.fetch_add(v, std::memory_order_relaxed)+v;}

◆ operator--() [1/4]

template<typename T >
T XrdSys::RAtomic< T >::operator-- ( )
inlinenoexcept

Definition at line 65 of file XrdSysRAtomic.hh.

66 {return _m.fetch_sub(1, std::memory_order_relaxed)-1;}

◆ operator--() [2/4]

template<typename T >
T XrdSys::RAtomic< T >::operator-- ( ) volatile
inlinenoexcept

Definition at line 68 of file XrdSysRAtomic.hh.

69 {return _m.fetch_sub(1, std::memory_order_relaxed)-1;}

◆ operator--() [3/4]

template<typename T >
T XrdSys::RAtomic< T >::operator-- ( int  )
inlinenoexcept

Definition at line 51 of file XrdSysRAtomic.hh.

52 {return _m.fetch_sub(1, std::memory_order_relaxed);}

◆ operator--() [4/4]

template<typename T >
T XrdSys::RAtomic< T >::operator-- ( int  ) volatile
inlinenoexcept

Definition at line 54 of file XrdSysRAtomic.hh.

55 {return _m.fetch_sub(1, std::memory_order_relaxed);}

◆ operator-=() [1/2]

template<typename T >
T XrdSys::RAtomic< T >::operator-= ( v)
inlinenoexcept

Definition at line 77 of file XrdSysRAtomic.hh.

78 {return _m.fetch_sub(v, std::memory_order_relaxed)-v;}

◆ operator-=() [2/2]

template<typename T >
T XrdSys::RAtomic< T >::operator-= ( v) volatile
inlinenoexcept

Definition at line 80 of file XrdSysRAtomic.hh.

81 {return _m.fetch_sub(v, std::memory_order_relaxed)-v;}

◆ operator=() [1/2]

template<typename T >
T XrdSys::RAtomic< T >::operator= ( v)
inlinenoexcept

Definition at line 31 of file XrdSysRAtomic.hh.

32 {_m.store(v, std::memory_order_relaxed); return v;}

◆ operator=() [2/2]

template<typename T >
T XrdSys::RAtomic< T >::operator= ( v) volatile
inlinenoexcept

Definition at line 34 of file XrdSysRAtomic.hh.

35 {_m.store(v, std::memory_order_relaxed); return v;}

◆ operator^=() [1/2]

template<typename T >
T XrdSys::RAtomic< T >::operator^= ( v)
inlinenoexcept

Definition at line 95 of file XrdSysRAtomic.hh.

96 {return _m.fetch_xor(v, std::memory_order_relaxed) ^ v;}

◆ operator^=() [2/2]

template<typename T >
T XrdSys::RAtomic< T >::operator^= ( v) volatile
inlinenoexcept

Definition at line 98 of file XrdSysRAtomic.hh.

99 {return _m.fetch_xor(v, std::memory_order_relaxed) ^ v;}

◆ operator|=() [1/2]

template<typename T >
T XrdSys::RAtomic< T >::operator|= ( v)
inlinenoexcept

Definition at line 89 of file XrdSysRAtomic.hh.

90 {return _m.fetch_or (v, std::memory_order_relaxed) | v;}

◆ operator|=() [2/2]

template<typename T >
T XrdSys::RAtomic< T >::operator|= ( v) volatile
inlinenoexcept

Definition at line 92 of file XrdSysRAtomic.hh.

93 {return _m.fetch_or (v, std::memory_order_relaxed) | v;}

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