struct TEventControlBlock

template<ThreadSafetyPolicy Policy = ThreadSafe>

Internal data for an Event, storing all connections.

Templated on ThreadSafetyPolicy to conditionally include a mutex.

Public

Constructors

TEventControlBlock<Policy>

TEventControlBlock<Policy>() = default

Methods

~TEventControlBlock<Policy>

Connect

void Connect(EventConnection *connection)

Appends a new connection to the active connection array.

Disconnect

void Disconnect(EventConnection *connection)

Disconnects the connection with the specified data, ensuring the event doesn't call its callback again.

DisconnectAll

void DisconnectAll()

Disconnects all connections in the event.

FreeHandle

void FreeHandle(EventConnection *connection)

Called when the event handle no longer keeps a reference to the connection data.

This means we might be able to free (and reuse) its memory if the event is done with it too.

FreeConnection

void FreeConnection(EventConnection *connection)

Releases connection data and makes it available for re-use when next connection is formed.

Fields

ActiveConnections

EventConnection * ActiveConnections

LastConnection

EventConnection * LastConnection

FreeConnections

EventConnection * FreeConnections

NewConnections

EventConnection * NewConnections

Mutex

MutexType Mutex

IsCurrentlyTriggering

bool IsCurrentlyTriggering