![]() |
Gorgon Game Engine
|
This class allows references to be counted and destroyed properly. More...
Public Member Functions | |
void | Decrease (const Data &data) |
Decreases the reference count of the given object. More... | |
void | GetRidOf (Data &data) |
Never use without a proper reason. More... | |
void | Increase (const Data &data) |
Increases the reference count of the given object. If it is not registered, this request is ignored. More... | |
void | Increase (void *ptr) |
Increases the reference count of the given object. If it is not registered, this request is ignored. More... | |
bool | IsRegistered (const Data &data) const |
void | list () |
void | Register (const Data &data) |
Registers a new object of reference counting, this will set reference count to one. More... | |
void | Register (void *ptr) |
Registers a new object of reference counting, this will set reference count to 0. More... | |
void | Reset (const Data &data) |
Resets the reference count to 0. More... | |
void | Unregister (const Data &data) |
Unregisters an object from reference counter. More... | |
This class allows references to be counted and destroyed properly.
void Decrease | ( | const Data & | data | ) |
Decreases the reference count of the given object.
If it is not registered, this request is ignored. If reference count of the object reaches 0, it is deleted.
References ASSERT, Data::Delete(), Data::GetData(), Member::GetName(), Data::GetType(), Any::IsPointer(), and Any::Pointer().
void GetRidOf | ( | Data & | data | ) |
Never use without a proper reason.
Gets rid of the data without destroying its content. It does decrease reference count. However, if it hits 0 it will not destroy its count.
References ASSERT, Data::GetData(), Member::GetName(), Data::GetType(), Data::Invalid(), Any::IsPointer(), and Any::Pointer().
void Increase | ( | const Data & | data | ) |
Increases the reference count of the given object. If it is not registered, this request is ignored.
References ASSERT, Data::GetData(), Member::GetName(), Data::GetType(), Any::IsPointer(), and Any::Pointer().
void Increase | ( | void * | ptr | ) |
Increases the reference count of the given object. If it is not registered, this request is ignored.
bool IsRegistered | ( | const Data & | data | ) | const |
References ASSERT, Data::GetData(), Member::GetName(), Data::GetType(), Any::IsPointer(), Data::IsValid(), and Any::Pointer().
void list | ( | ) |
void Register | ( | const Data & | data | ) |
Registers a new object of reference counting, this will set reference count to one.
This function ignores register requests for nullptr
References ASSERT, Data::GetData(), Member::GetName(), Data::GetType(), Any::IsPointer(), and Any::Pointer().
void Register | ( | void * | ptr | ) |
Registers a new object of reference counting, this will set reference count to 0.
This function ignores register requests for nullptr
void Reset | ( | const Data & | data | ) |
Resets the reference count to 0.
References ASSERT, Data::GetData(), Member::GetName(), Data::GetType(), Any::IsPointer(), and Any::Pointer().
void Unregister | ( | const Data & | data | ) |
Unregisters an object from reference counter.
References ASSERT, Data::GetData(), Member::GetName(), Data::GetType(), Any::IsPointer(), and Any::Pointer().