35 #ifndef _Destroyable_H__ 36 #define _Destroyable_H__ 63 {
return this->referenceCount_; }
73 { ++this->referenceCount_; }
77 --this->referenceCount_;
78 if (this->referenceCount_ == 0 && this->requestedDestruction_)
84 { this->destructionListeners_.insert(pointer); }
87 { this->destructionListeners_.erase(pointer); }
105 {
if (
object) {
object->registerDestructionListener(
this); } }
107 {
if (
object) {
object->unregisterDestructionListener(
this); } }
109 virtual void objectDeleted() = 0;
std::set< DestructionListener * > destructionListeners_
All destruction listeners (for example weak pointers which point to this object and like to get notif...
Definition: Destroyable.h:91
void decrementReferenceCount()
Decrements the reference counter (for strong pointers).
Definition: Destroyable.h:75
virtual void preDestroy()
This virtual function is called if destroy() is called and no StrongPtr points to this object...
Definition: Destroyable.h:68
Shared library macros, enums, constants and forward declarations for the core library ...
A strong pointer which wraps a pointer to an object and keeps this object alive as long as the strong...
Definition: CorePrereqs.h:227
void unregisterAsDestructionListener(Destroyable *object)
Definition: Destroyable.h:106
void registerAsDestructionListener(Destroyable *object)
Definition: Destroyable.h:104
void registerDestructionListener(DestructionListener *pointer)
Register a destruction listener (for example a weak pointer which points to this object).
Definition: Destroyable.h:83
void unregisterDestructionListener(DestructionListener *pointer)
Unegister a destruction listener (for example a weak pointer which pointed to this object before)...
Definition: Destroyable.h:86
bool requestedDestruction_
Becomes true after someone called delete on this object.
Definition: Destroyable.h:90
The MetaPickup destroys all the PickupCarriers' Pickupables.
unsigned int getReferenceCount() const
Returns the number of strong pointers that point to this object.
Definition: Destroyable.h:62
void incrementReferenceCount()
Increments the reference counter (for strong pointers).
Definition: Destroyable.h:72
virtual ~DestructionListener()
Definition: Destroyable.h:102
int referenceCount_
Counts the references from strong pointers to this object.
Definition: Destroyable.h:89
Die Wagnis Klasse hat die folgenden Aufgaben:
Definition: ApplicationPaths.cc:66
#define _CoreExport
Definition: CorePrereqs.h:61
This listener is used to inform weak pointers if an object of type Destroyable gets destroyed...
Definition: Destroyable.h:97
Classes must inherit from this class if they should be used with StrongPtr or WeakPtr.
Definition: Destroyable.h:47