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)
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
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
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
fetch_and (T v) noexcept
fetch_or (T v) noexcept
fetch_xor (T v) noexcept
load ()
 operator T () noexcept
 operator T* () noexcept
 operator T* () volatile noexcept
operator&= (T v) noexcept
T * operator++ () noexcept
T * operator++ () volatile noexcept
T * operator++ (int) noexcept
T * operator++ (int) volatile noexcept
T * operator+= (ptrdiff_t v) noexcept
T * operator+= (ptrdiff_t v) volatile noexcept
T * operator-- () noexcept
T * operator-- () volatile noexcept
T * operator-- (int) noexcept
T * operator-- (int) volatile noexcept
T * operator-= (ptrdiff_t v) noexcept
T * operator-= (ptrdiff_t v) volatile noexcept
T * operator-> () noexcept
T * operator= (T *v) noexcept
T * operator= (T *v) volatile noexcept
operator^= (T v) noexcept
operator|= (T v) noexcept

Detailed Description

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

Definition at line 156 of file XrdSysRAtomic.hh.

Constructor & Destructor Documentation

◆ RAtomic() [1/2]

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

Definition at line 249 of file XrdSysRAtomic.hh.

249{}

◆ RAtomic() [2/2]

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

Definition at line 251 of file XrdSysRAtomic.hh.

251: _m(v) {}

Member Function Documentation

◆ compare_exchange_strong() [1/2]

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 219 of file XrdSysRAtomic.hh.

223 {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,
T * v2,
std::memory_order mo1 = std::memory_order_relaxed,
std::memory_order mo2 = std::memory_order_relaxed ) volatile
inlinenoexcept

Definition at line 225 of file XrdSysRAtomic.hh.

229 {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,
T * v2,
std::memory_order mo1 = std::memory_order_relaxed,
std::memory_order mo2 = std::memory_order_relaxed )
inlinenoexcept

Definition at line 231 of file XrdSysRAtomic.hh.

235 {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,
T * v2,
std::memory_order mo1 = std::memory_order_relaxed,
std::memory_order mo2 = std::memory_order_relaxed ) volatile
inlinenoexcept

Definition at line 237 of file XrdSysRAtomic.hh.

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

◆ exchange() [1/2]

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

Definition at line 243 of file XrdSysRAtomic.hh.

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

◆ exchange() [2/2]

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

Definition at line 246 of file XrdSysRAtomic.hh.

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

◆ fetch_and()

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

Definition at line 103 of file XrdSysRAtomic.hh.

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

◆ fetch_or()

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

Definition at line 106 of file XrdSysRAtomic.hh.

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

◆ fetch_xor()

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

Definition at line 109 of file XrdSysRAtomic.hh.

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

◆ load()

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

Definition at line 144 of file XrdSysRAtomic.hh.

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

◆ operator 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*() [1/2]

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

Definition at line 168 of file XrdSysRAtomic.hh.

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

◆ operator T*() [2/2]

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

Definition at line 171 of file XrdSysRAtomic.hh.

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

◆ operator&=()

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

Definition at line 83 of file XrdSysRAtomic.hh.

84 {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 193 of file XrdSysRAtomic.hh.

194 {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 196 of file XrdSysRAtomic.hh.

197 {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 179 of file XrdSysRAtomic.hh.

180 {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 182 of file XrdSysRAtomic.hh.

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

◆ operator+=() [1/2]

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

Definition at line 205 of file XrdSysRAtomic.hh.

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

◆ operator+=() [2/2]

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

Definition at line 208 of file XrdSysRAtomic.hh.

209 {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 199 of file XrdSysRAtomic.hh.

200 {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 202 of file XrdSysRAtomic.hh.

203 {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 185 of file XrdSysRAtomic.hh.

186 {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 188 of file XrdSysRAtomic.hh.

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

◆ operator-=() [1/2]

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

Definition at line 211 of file XrdSysRAtomic.hh.

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

◆ operator-=() [2/2]

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

Definition at line 214 of file XrdSysRAtomic.hh.

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

◆ operator->()

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

Definition at line 174 of file XrdSysRAtomic.hh.

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

◆ operator=() [1/2]

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

Definition at line 162 of file XrdSysRAtomic.hh.

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

◆ operator=() [2/2]

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

Definition at line 165 of file XrdSysRAtomic.hh.

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

◆ operator^=()

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

Definition at line 95 of file XrdSysRAtomic.hh.

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

◆ operator|=()

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

Definition at line 89 of file XrdSysRAtomic.hh.

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

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