EventSignalBase-Klasse

Clients können eine Verbindung mit dem Ereignissignal herstellen, um Ereignisse zu empfangen, oder die Verbindung mit dem Ereignissignal trennen, um den Empfang von Ereignissen zu beenden.

Zur Bauzeit können Verbindungs- und Verbindungsrückrufe bereitgestellt werden, die aufgerufen werden, wenn sich die Anzahl der verbundenen Clients von 1 auf 1 bzw. 1 zu 0 ändert.

Member

EventSignalBase

Syntax: public inline EventSignalBase ( );

Erstellt ein Ereignissignal mit leeren Verbindungs- und Trennungsaktionen.

~EventSignalBase

Syntax: public inline virtual ~EventSignalBase ( );

Destruktor.

Registercallback

Syntax: public inline CallbackToken RegisterCallback ( CallbackFunction callback );

Registriert einen Rückruf für diese EventSignalBase und weist ihr ein eindeutiges Token zu.

Parameter

  • callback Der zu registrierende Rückruf.

Gibt zurück

Das neue Token, das dieser Registrierung zugeordnet ist und für die nachfolgende Aufhebung der Registrierung verwendet werden kann.

Aufheben der RegistrierungCallback

Syntax: public inline bool UnregisterCallback ( CallbackToken token );

Falls vorhanden, hebt die Registrierung eines Rückrufs aus dieser EventSource auf, der dem bereitgestellten Token zugeordnet ist. Token werden zum Zeitpunkt der Registrierung von RegisterCallback zurückgegeben.

Parameter

  • token Das Token, das dem zu entfernenden Rückruf zugeordnet ist. Dieses Token wird durch den Rückgabewert von RegisterCallback zum Zeitpunkt der Registrierung bereitgestellt.

Gibt zurück

Ein Wert, der angibt, ob ein Rückruf als Reaktion auf diese Anforderung nicht registriert wurde.

Operator()

Syntax: public inline void operator() ( T t );

Funktionsaufrufoperator. Signalisiert das Ereignis mit den angegebenen Argumenten t an verbundene Clients, siehe auch Signal.

Parameter

  • t Zu signalisierende Ereignisargumente.

Aufheben der RegistrierungAllCallbacks

Syntax: public inline void UnregisterAllCallbacks ( );

Hebt die Registrierung aller registrierten Rückrufe auf.

Signal

Syntax: public inline void Signal ( T t );

Signalisiert das Ereignis mit den angegebenen Argumenten t an alle verbundenen Rückrufe.

Parameter

  • t Zu signalisierende Ereignisargumente.

Isconnected

Syntax: public inline bool IsConnected ( ) const;

Überprüft, ob ein Rückruf verbunden ist.

Gibt zurück

true, wenn ein Rückruf verbunden ist

m_callbacks

Syntax: protected std::map< CallbackToken, CallbackFunction > m_callbacks;

m_nextCallbackToken

Syntax: protected CallbackToken m_nextCallbackToken;

m_mutex

Syntax: protected mutable std::recursive_mutex m_mutex;

CallbackFunction

Syntax: typedef CallbackFunction;

Rückruftyp, der zum Signalisieren des Ereignisses an verbundene Clients verwendet wird.

CallbackArgument

Syntax: typedef CallbackArgument;

Der Argumenttyp für das Rückrufereignis.

CallbackToken

Syntax: typedef CallbackToken;

Ein monoton zunehmendes Token, das für die Registrierung, Nachverfolgung und Aufhebung der Registrierung von Rückrufen verwendet wird.