U3D
Open-source, cross-platform 2D and 3D game engine built in C++
Loading...
Searching...
No Matches
Urho3D::EventReceiverGroup Class Reference

Tracking structure for event receivers. More...

#include </var/dev/u3d/stable/Source/Urho3D/Core/Context.h>

Inheritance diagram for Urho3D::EventReceiverGroup:
[legend]
Collaboration diagram for Urho3D::EventReceiverGroup:
[legend]

Public Member Functions

 EventReceiverGroup ()
 Construct.
 
void BeginSendEvent ()
 Begin event send. When receivers are removed during send, group has to be cleaned up afterward.
 
void EndSendEvent ()
 End event send. Clean up if necessary. More...
 
void Add (Object *object)
 Add receiver. Same receiver must not be double-added!
 
void Remove (Object *object)
 Remove receiver. Leave holes during send, which requires later cleanup.
 
- Public Member Functions inherited from Urho3D::RefCounted
 RefCounted ()
 Construct. Allocate the reference count structure and set an initial self weak reference.
 
virtual ~RefCounted ()
 Destruct. Mark as expired and also delete the reference count structure if no outside weak references exist.
 
 RefCounted (const RefCounted &rhs)=delete
 Prevent copy construction.
 
RefCountedoperator= (const RefCounted &rhs)=delete
 Prevent assignment.
 
void AddRef ()
 
void ReleaseRef ()
 
int Refs () const
 
int WeakRefs () const
 
RefCountRefCountPtr ()
 Return pointer to the reference count structure.
 

Public Attributes

PODVector< Object * > receivers_
 Receivers. May contain holes during sending.
 

Private Attributes

unsigned inSend_
 "In send" recursion counter.
 
bool dirty_
 Cleanup required flag.
 

Detailed Description

Tracking structure for event receivers.

Member Function Documentation

◆ EndSendEvent()

void Urho3D::EventReceiverGroup::EndSendEvent ( )

End event send. Clean up if necessary.

Todo:
Could be optimized by erase-swap, but this keeps the receiver order

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