BinaryNinja::CoreRefCountObject< T, AddObjectReference, FreeObjectReference > Class Template Reference

Public Member Functions

 CoreRefCountObject ()
 
virtual ~CoreRefCountObject ()
 
T * GetObject () const
 
void AddRef ()
 
void Release ()
 
void AddRefForRegistration ()
 
void ReleaseForRegistration ()
 

Static Public Member Functions

static T * GetObject (CoreRefCountObject *obj)
 

Public Attributes

std::atomic< int > m_refs
 
bool m_registeredRef = false
 
T * m_object
 

Constructor & Destructor Documentation

◆ CoreRefCountObject()

template<class T , T *(*)(T *) AddObjectReference, void(*)(T *) FreeObjectReference>
BinaryNinja::CoreRefCountObject< T, AddObjectReference, FreeObjectReference >::CoreRefCountObject ( )
inline

◆ ~CoreRefCountObject()

template<class T , T *(*)(T *) AddObjectReference, void(*)(T *) FreeObjectReference>
virtual BinaryNinja::CoreRefCountObject< T, AddObjectReference, FreeObjectReference >::~CoreRefCountObject ( )
inlinevirtual

Member Function Documentation

◆ AddRef()

template<class T , T *(*)(T *) AddObjectReference, void(*)(T *) FreeObjectReference>
void BinaryNinja::CoreRefCountObject< T, AddObjectReference, FreeObjectReference >::AddRef ( )
inline

◆ AddRefForRegistration()

template<class T , T *(*)(T *) AddObjectReference, void(*)(T *) FreeObjectReference>
void BinaryNinja::CoreRefCountObject< T, AddObjectReference, FreeObjectReference >::AddRefForRegistration ( )
inline

◆ GetObject() [1/2]

template<class T , T *(*)(T *) AddObjectReference, void(*)(T *) FreeObjectReference>
T * BinaryNinja::CoreRefCountObject< T, AddObjectReference, FreeObjectReference >::GetObject ( ) const
inline

◆ GetObject() [2/2]

template<class T , T *(*)(T *) AddObjectReference, void(*)(T *) FreeObjectReference>
static T * BinaryNinja::CoreRefCountObject< T, AddObjectReference, FreeObjectReference >::GetObject ( CoreRefCountObject< T, AddObjectReference, FreeObjectReference > *  obj)
inlinestatic

◆ Release()

template<class T , T *(*)(T *) AddObjectReference, void(*)(T *) FreeObjectReference>
void BinaryNinja::CoreRefCountObject< T, AddObjectReference, FreeObjectReference >::Release ( )
inline

◆ ReleaseForRegistration()

template<class T , T *(*)(T *) AddObjectReference, void(*)(T *) FreeObjectReference>
void BinaryNinja::CoreRefCountObject< T, AddObjectReference, FreeObjectReference >::ReleaseForRegistration ( )
inline

Member Data Documentation

◆ m_object

template<class T , T *(*)(T *) AddObjectReference, void(*)(T *) FreeObjectReference>
T* BinaryNinja::CoreRefCountObject< T, AddObjectReference, FreeObjectReference >::m_object

◆ m_refs

template<class T , T *(*)(T *) AddObjectReference, void(*)(T *) FreeObjectReference>
std::atomic<int> BinaryNinja::CoreRefCountObject< T, AddObjectReference, FreeObjectReference >::m_refs

◆ m_registeredRef

template<class T , T *(*)(T *) AddObjectReference, void(*)(T *) FreeObjectReference>
bool BinaryNinja::CoreRefCountObject< T, AddObjectReference, FreeObjectReference >::m_registeredRef = false

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