用戶端可以連線到事件訊號來接收事件,或中斷事件訊號的連線,以停止接收事件。
在建構階段,可以分別在連線用戶端數目從零變更為一或一到零時呼叫連接和中斷連線機回呼。
成員
EventSignalBase
語法:public inline EventSignalBase ( );
使用空的連線和中斷連線動作建構事件訊號。
~EventSignalBase
語法:public inline virtual ~EventSignalBase ( );
解構函式。
RegisterCallback
語法:public inline CallbackToken RegisterCallback ( CallbackFunction callback );
註冊此 EventSignalBase 的回呼,併為其指派唯一令牌。
參數
-
callback要註冊的回呼。
退貨
與此註冊相關聯的新令牌,可用於後續的取消註冊。
取消註冊回呼
語法:public inline bool UnregisterCallback ( CallbackToken token );
如果存在,請從與所提供令牌相關聯的這個 EventSource 取消註冊回呼。 令牌會在註冊時從 RegisterCallback 傳回。
參數
-
token與要移除之回呼相關聯的令牌。 此令牌是由註冊時 RegisterCallback 的傳回值所提供。
退貨
值,指出是否取消註冊任何回呼以回應此要求。
operator()
語法:public inline void operator() ( T t );
函數調用運算符。 將具有指定自變數的事件發出訊號,t 連線的用戶端,另請參閱 Signal。
參數
-
t要發出訊號的事件自變數。
取消所有回調註冊
語法:public inline void UnregisterAllCallbacks ( );
取消註冊所有已註冊的回呼。
信號
語法:public inline void Signal ( T t );
將具有指定自變數的事件發出訊號,t 至所有連接的回呼。
參數
-
t要發出訊號的事件自變數。
IsConnected
語法:public inline bool IsConnected ( ) const;
檢查回呼是否已連線。
退貨
如果回呼已連線,則為 true
m_callbacks
語法:protected std::map< CallbackToken, CallbackFunction > m_callbacks;
m_nextCallbackToken
語法:protected CallbackToken m_nextCallbackToken;
m_mutex
語法:protected mutable std::recursive_mutex m_mutex;
CallbackFunction
語法:typedef CallbackFunction;
用於向已連線用戶端發出事件訊號的回呼類型。
CallbackArgument
語法:typedef CallbackArgument;
回呼事件的自變數類型。
CallbackToken
語法:typedef CallbackToken;
單調增加的令牌,用於註冊、追蹤和取消註冊回呼。