Agora C++ API Reference for All Platforms
Static Public Member Functions | List of all members
agora::AtomicOps Class Reference

Static Public Member Functions

static int Increment (volatile int *i)
 
static int Decrement (volatile int *i)
 
static int AcquireLoad (volatile const int *i)
 
static void ReleaseStore (volatile int *i, int value)
 
static int CompareAndSwap (volatile int *i, int old_value, int new_value)
 
template<typename T >
static T * AcquireLoadPtr (T *volatile *ptr)
 
template<typename T >
static T * CompareAndSwapPtr (T *volatile *ptr, T *old_value, T *new_value)
 
static int Increment (volatile int *i)
 
static int Decrement (volatile int *i)
 
static int AcquireLoad (volatile const int *i)
 
static void ReleaseStore (volatile int *i, int value)
 
static int CompareAndSwap (volatile int *i, int old_value, int new_value)
 
template<typename T >
static T * AcquireLoadPtr (T *volatile *ptr)
 
template<typename T >
static T * CompareAndSwapPtr (T *volatile *ptr, T *old_value, T *new_value)
 

Member Function Documentation

◆ Increment() [1/2]

static int agora::AtomicOps::Increment ( volatile int *  i)
inlinestatic

◆ Decrement() [1/2]

static int agora::AtomicOps::Decrement ( volatile int *  i)
inlinestatic

◆ AcquireLoad() [1/2]

static int agora::AtomicOps::AcquireLoad ( volatile const int *  i)
inlinestatic

◆ ReleaseStore() [1/2]

static void agora::AtomicOps::ReleaseStore ( volatile int *  i,
int  value 
)
inlinestatic

◆ CompareAndSwap() [1/2]

static int agora::AtomicOps::CompareAndSwap ( volatile int *  i,
int  old_value,
int  new_value 
)
inlinestatic

◆ AcquireLoadPtr() [1/2]

template<typename T >
static T* agora::AtomicOps::AcquireLoadPtr ( T *volatile *  ptr)
inlinestatic

◆ CompareAndSwapPtr() [1/2]

template<typename T >
static T* agora::AtomicOps::CompareAndSwapPtr ( T *volatile *  ptr,
T *  old_value,
T *  new_value 
)
inlinestatic

◆ Increment() [2/2]

static int agora::AtomicOps::Increment ( volatile int *  i)
inlinestatic

◆ Decrement() [2/2]

static int agora::AtomicOps::Decrement ( volatile int *  i)
inlinestatic

◆ AcquireLoad() [2/2]

static int agora::AtomicOps::AcquireLoad ( volatile const int *  i)
inlinestatic

◆ ReleaseStore() [2/2]

static void agora::AtomicOps::ReleaseStore ( volatile int *  i,
int  value 
)
inlinestatic

◆ CompareAndSwap() [2/2]

static int agora::AtomicOps::CompareAndSwap ( volatile int *  i,
int  old_value,
int  new_value 
)
inlinestatic

◆ AcquireLoadPtr() [2/2]

template<typename T >
static T* agora::AtomicOps::AcquireLoadPtr ( T *volatile *  ptr)
inlinestatic

◆ CompareAndSwapPtr() [2/2]

template<typename T >
static T* agora::AtomicOps::CompareAndSwapPtr ( T *volatile *  ptr,
T *  old_value,
T *  new_value 
)
inlinestatic