Agora C++ API Reference for All Platforms
Loading...
Searching...
No Matches
agora::AtomicOps Class Reference

#include <AgoraAtomicOps.h>

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