XRootD
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
 
 operator T* () noexcept
 
 operator T* () 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-- () 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
 

Detailed Description

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

Definition at line 154 of file XrdSysRAtomic.hh.

Constructor & Destructor Documentation

◆ RAtomic() [1/2]

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

Definition at line 247 of file XrdSysRAtomic.hh.

247 {}

◆ RAtomic() [2/2]

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

Definition at line 249 of file XrdSysRAtomic.hh.

249 : _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 217 of file XrdSysRAtomic.hh.

221  {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 223 of file XrdSysRAtomic.hh.

227  {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 229 of file XrdSysRAtomic.hh.

233  {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 235 of file XrdSysRAtomic.hh.

239  {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 241 of file XrdSysRAtomic.hh.

242  {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 244 of file XrdSysRAtomic.hh.

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

◆ operator T*() [1/2]

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

Definition at line 166 of file XrdSysRAtomic.hh.

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

◆ operator T*() [2/2]

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

Definition at line 169 of file XrdSysRAtomic.hh.

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

◆ operator++() [1/4]

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

Definition at line 191 of file XrdSysRAtomic.hh.

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

195  {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 177 of file XrdSysRAtomic.hh.

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

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

204  {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 206 of file XrdSysRAtomic.hh.

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

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

201  {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 183 of file XrdSysRAtomic.hh.

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

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

210  {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 212 of file XrdSysRAtomic.hh.

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

◆ operator->()

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

Definition at line 172 of file XrdSysRAtomic.hh.

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

◆ operator=() [1/2]

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

Definition at line 160 of file XrdSysRAtomic.hh.

161  {_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 163 of file XrdSysRAtomic.hh.

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

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