12#if !(__cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1800))
15#ifndef OPTIONAL_ENUM_CLASS
16#if __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1800)
17#define OPTIONAL_ENUM_CLASS enum class
19#define OPTIONAL_ENUM_CLASS enum
66#if __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1800)
78 operator bool()
const {
return (
ptr_ != NULL); }
95 if (
ptr_ == p)
return *
this;
104 return *
this = r.
get();
107#if __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1800)
113 template <
typename U>
147#if __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1800)
150struct hash<
agora::agora_refptr<T>> {
152 return reinterpret_cast<size_t>(k.
get());
Definition AgoraRefPtr.h:31
virtual bool HasOneRef() const =0
virtual void AddRef() const =0
virtual RefCountReleaseStatus Release() const =0
virtual ~RefCountInterface()
Definition AgoraRefPtr.h:40
Definition AgoraRefPtr.h:44
void reset()
Definition AgoraRefPtr.h:134
bool operator<(const agora_refptr< T > &r) const
Definition AgoraRefPtr.h:124
T * get() const
Definition AgoraRefPtr.h:77
agora_refptr< T > & operator=(agora_refptr< U > &&r)
Definition AgoraRefPtr.h:114
bool operator==(const agora_refptr< T > &r) const
Definition AgoraRefPtr.h:121
void swap(agora_refptr< T > &r)
Definition AgoraRefPtr.h:132
agora_refptr()
Definition AgoraRefPtr.h:46
T * ptr_
Definition AgoraRefPtr.h:142
agora_refptr(agora_refptr< T > &&r)
Definition AgoraRefPtr.h:67
agora_refptr< T > & operator=(T *p)
Definition AgoraRefPtr.h:94
agora_refptr< T > & operator=(const agora_refptr< T > &r)
Definition AgoraRefPtr.h:103
T * operator->() const
Definition AgoraRefPtr.h:80
agora_refptr(agora_refptr< U > &&r)
Definition AgoraRefPtr.h:70
T & operator*() const
Definition AgoraRefPtr.h:81
agora_refptr< T > & operator=(agora_refptr< T > &&r)
Definition AgoraRefPtr.h:108
agora_refptr(const agora_refptr< U > &r)
Definition AgoraRefPtr.h:62
T * move()
Definition AgoraRefPtr.h:88
~agora_refptr()
Definition AgoraRefPtr.h:73
agora_refptr(T *p)
Definition AgoraRefPtr.h:48
void swap(T **pp)
Definition AgoraRefPtr.h:126
agora_refptr(const agora_refptr< T > &r)
Definition AgoraRefPtr.h:57
agora_refptr(U *p)
Definition AgoraRefPtr.h:53
Definition AgoraAtomicOps.h:21
OPTIONAL_ENUM_CLASS RefCountReleaseStatus
Definition AgoraRefPtr.h:25
Definition AgoraOptional.h:881
std::size_t operator()(const agora::agora_refptr< T > &k) const
Definition AgoraRefPtr.h:151