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 ()
 
 RAtomic (T *v)
 
 RAtomic (T v)
 
T * compare_exchange_strong (T &v1, T *v2, std::memory_order mo1=std::memory_order_relaxed, std::memory_order mo2=std::memory_order_relaxed) noexcept
 
T * 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_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
 
T * compare_exchange_weak (T &v1, T *v2, std::memory_order mo1=std::memory_order_relaxed, std::memory_order mo2=std::memory_order_relaxed) noexcept
 
T * 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
 
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
 
T * exchange (T *v, std::memory_order mo=std::memory_order_relaxed) noexcept
 
T * exchange (T *v, std::memory_order mo=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 () const noexcept
 
 operator T () const volatile noexcept
 
 operator T () noexcept
 
 operator T () volatile noexcept
 
 operator T* () noexcept
 
 operator T* () volatile noexcept
 
operator&= (T v) noexcept
 
operator&= (T v) volatile noexcept
 
operator++ () noexcept
 
T * operator++ () noexcept
 
operator++ () volatile noexcept
 
T * operator++ () volatile noexcept
 
operator++ (int) noexcept
 
T * operator++ (int) noexcept
 
operator++ (int) volatile noexcept
 
T * operator++ (int) volatile noexcept
 
T * operator+= (ptrdiff_t v) noexcept
 
T * operator+= (ptrdiff_t v) volatile noexcept
 
operator+= (T v) noexcept
 
operator+= (T v) volatile noexcept
 
operator-- () noexcept
 
T * operator-- () noexcept
 
operator-- () volatile noexcept
 
T * operator-- () volatile noexcept
 
operator-- (int) noexcept
 
T * operator-- (int) noexcept
 
operator-- (int) volatile noexcept
 
T * operator-- (int) volatile noexcept
 
T * operator-= (ptrdiff_t v) noexcept
 
T * operator-= (ptrdiff_t v) volatile noexcept
 
operator-= (T v) noexcept
 
operator-= (T v) volatile noexcept
 
T * operator-> () noexcept
 
RAtomicoperator= (const RAtomic &other) noexcept
 
RAtomicoperator= (const RAtomic &other) volatile noexcept
 
T * operator= (T *v) noexcept
 
T * 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 176 of file XrdSysRAtomic.hh.

Constructor & Destructor Documentation

◆ RAtomic() [1/4]

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

Definition at line 269 of file XrdSysRAtomic.hh.

269{}

◆ RAtomic() [2/4]

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

Definition at line 271 of file XrdSysRAtomic.hh.

271: _m(v) {}

◆ RAtomic() [3/4]

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

Definition at line 166 of file XrdSysRAtomic.hh.

166{}

◆ RAtomic() [4/4]

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

Definition at line 168 of file XrdSysRAtomic.hh.

168: _m(v) {}

Member Function Documentation

◆ compare_exchange_strong() [1/4]

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

Definition at line 239 of file XrdSysRAtomic.hh.

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

◆ compare_exchange_strong() [2/4]

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

Definition at line 245 of file XrdSysRAtomic.hh.

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

◆ compare_exchange_strong() [3/4]

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

Definition at line 136 of file XrdSysRAtomic.hh.

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

◆ compare_exchange_strong() [4/4]

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

Definition at line 142 of file XrdSysRAtomic.hh.

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

◆ compare_exchange_weak() [1/4]

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

Definition at line 251 of file XrdSysRAtomic.hh.

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

◆ compare_exchange_weak() [2/4]

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

Definition at line 257 of file XrdSysRAtomic.hh.

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

◆ compare_exchange_weak() [3/4]

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

Definition at line 148 of file XrdSysRAtomic.hh.

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

◆ compare_exchange_weak() [4/4]

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

Definition at line 154 of file XrdSysRAtomic.hh.

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

◆ exchange() [1/4]

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

Definition at line 263 of file XrdSysRAtomic.hh.

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

◆ exchange() [2/4]

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

Definition at line 266 of file XrdSysRAtomic.hh.

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

◆ exchange() [3/4]

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

Definition at line 160 of file XrdSysRAtomic.hh.

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

◆ exchange() [4/4]

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

Definition at line 163 of file XrdSysRAtomic.hh.

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

◆ fetch_and()

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

Definition at line 125 of file XrdSysRAtomic.hh.

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

◆ fetch_or()

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

Definition at line 128 of file XrdSysRAtomic.hh.

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

◆ fetch_xor()

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

Definition at line 131 of file XrdSysRAtomic.hh.

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

◆ operator T() [1/4]

XrdSys::RAtomic< T >::operator T ( ) const
inlinenoexcept

Definition at line 40 of file XrdSysRAtomic.hh.

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

◆ operator T() [2/4]

XrdSys::RAtomic< T >::operator T ( ) const volatile
inlinenoexcept

Definition at line 46 of file XrdSysRAtomic.hh.

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

◆ operator T() [3/4]

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

Definition at line 37 of file XrdSysRAtomic.hh.

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

◆ operator T() [4/4]

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

Definition at line 43 of file XrdSysRAtomic.hh.

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

◆ operator T*() [1/2]

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

Definition at line 188 of file XrdSysRAtomic.hh.

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

◆ operator T*() [2/2]

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

Definition at line 191 of file XrdSysRAtomic.hh.

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

◆ operator&=() [1/2]

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

Definition at line 105 of file XrdSysRAtomic.hh.

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

◆ operator&=() [2/2]

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

Definition at line 108 of file XrdSysRAtomic.hh.

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

◆ operator++() [1/8]

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

Definition at line 81 of file XrdSysRAtomic.hh.

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

◆ operator++() [2/8]

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

Definition at line 213 of file XrdSysRAtomic.hh.

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

◆ operator++() [3/8]

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

Definition at line 84 of file XrdSysRAtomic.hh.

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

◆ operator++() [4/8]

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

Definition at line 216 of file XrdSysRAtomic.hh.

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

◆ operator++() [5/8]

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

Definition at line 67 of file XrdSysRAtomic.hh.

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

◆ operator++() [6/8]

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

Definition at line 199 of file XrdSysRAtomic.hh.

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

◆ operator++() [7/8]

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

Definition at line 70 of file XrdSysRAtomic.hh.

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

◆ operator++() [8/8]

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

Definition at line 202 of file XrdSysRAtomic.hh.

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

◆ operator+=() [1/4]

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

Definition at line 225 of file XrdSysRAtomic.hh.

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

◆ operator+=() [2/4]

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

Definition at line 228 of file XrdSysRAtomic.hh.

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

◆ operator+=() [3/4]

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

Definition at line 93 of file XrdSysRAtomic.hh.

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

◆ operator+=() [4/4]

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

Definition at line 96 of file XrdSysRAtomic.hh.

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

◆ operator--() [1/8]

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

Definition at line 87 of file XrdSysRAtomic.hh.

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

◆ operator--() [2/8]

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

Definition at line 219 of file XrdSysRAtomic.hh.

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

◆ operator--() [3/8]

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

Definition at line 90 of file XrdSysRAtomic.hh.

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

◆ operator--() [4/8]

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

Definition at line 222 of file XrdSysRAtomic.hh.

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

◆ operator--() [5/8]

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

Definition at line 73 of file XrdSysRAtomic.hh.

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

◆ operator--() [6/8]

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

Definition at line 205 of file XrdSysRAtomic.hh.

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

◆ operator--() [7/8]

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

Definition at line 76 of file XrdSysRAtomic.hh.

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

◆ operator--() [8/8]

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

Definition at line 208 of file XrdSysRAtomic.hh.

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

◆ operator-=() [1/4]

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

Definition at line 231 of file XrdSysRAtomic.hh.

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

◆ operator-=() [2/4]

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

Definition at line 234 of file XrdSysRAtomic.hh.

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

◆ operator-=() [3/4]

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

Definition at line 99 of file XrdSysRAtomic.hh.

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

◆ operator-=() [4/4]

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

Definition at line 102 of file XrdSysRAtomic.hh.

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

◆ operator->()

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

Definition at line 194 of file XrdSysRAtomic.hh.

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

◆ operator=() [1/6]

RAtomic & XrdSys::RAtomic< T >::operator= ( const RAtomic< T * > & other)
inlinenoexcept

Definition at line 51 of file XrdSysRAtomic.hh.

51 {
52 if (this != &other) {
54 }
55 return *this;
56 }

◆ operator=() [2/6]

RAtomic & XrdSys::RAtomic< T >::operator= ( const RAtomic< T * > & other) volatile
inlinenoexcept

Definition at line 58 of file XrdSysRAtomic.hh.

58 {
59 if (this != &other) {
61 }
62 return *this;
63 }

◆ operator=() [3/6]

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

Definition at line 182 of file XrdSysRAtomic.hh.

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

◆ operator=() [4/6]

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

Definition at line 185 of file XrdSysRAtomic.hh.

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

◆ operator=() [5/6]

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

Definition at line 31 of file XrdSysRAtomic.hh.

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

◆ operator=() [6/6]

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

Definition at line 34 of file XrdSysRAtomic.hh.

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

◆ operator^=() [1/2]

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

Definition at line 117 of file XrdSysRAtomic.hh.

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

◆ operator^=() [2/2]

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

Definition at line 120 of file XrdSysRAtomic.hh.

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

◆ operator|=() [1/2]

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

Definition at line 111 of file XrdSysRAtomic.hh.

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

◆ operator|=() [2/2]

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

Definition at line 114 of file XrdSysRAtomic.hh.

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

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