call 類別
call
傳訊區塊是一個多來源的排序 target_block
,它在接收訊息時會叫用指定的函式。
語法
template<class T, class _FunctorType = std::function<void(T const&)>>
class call : public target_block<multi_link_registry<ISource<T>>>;
參數
T
傳播至此區塊之訊息的承載類型。
_FunctorType
此區塊可以接受的函式簽章。
成員
公用建構函式
名稱 | 描述 |
---|---|
call | 已多載。 建構 call 傳訊區塊。 |
~呼叫解構函式 | call 終結傳訊區塊。 |
受保護的方法
名稱 | 描述 |
---|---|
process_input_messages | 在輸入訊息上執行呼叫函式。 |
process_message | 處理此 call 傳訊區塊所接受的訊息。 |
propagate_message | 以異步方式將訊息從 ISource 區塊傳遞至這個 call 傳訊區塊。 propagate 當來源區塊呼叫時,方法會叫用它。 |
send_message | 以同步方式將訊息從 ISource 區塊傳遞至此 call 傳訊區塊。 send 當來源區塊呼叫時,方法會叫用它。 |
supports_anonymous_source | 覆寫 supports_anonymous_source 方法,指出這個區塊可以接受未連結的來源提供給它的訊息。 (覆寫 ITarget::supports_anonymous_source.) |
備註
如需詳細資訊,請參閱 異步消息塊。
繼承階層架構
call
需求
標頭: agents.h
命名空間: concurrency
call
建構 call
傳訊區塊。
call(
_Call_method const& _Func);
call(
_Call_method const& _Func,
filter_method const& _Filter);
call(
Scheduler& _PScheduler,
_Call_method const& _Func);
call(
Scheduler& _PScheduler,
_Call_method const& _Func,
filter_method const& _Filter);
call(
ScheduleGroup& _PScheduleGroup,
_Call_method const& _Func);
call(
ScheduleGroup& _PScheduleGroup,
_Call_method const& _Func,
filter_method const& _Filter);
參數
_Func
將針對每個已接受訊息叫用的函式。
_濾波器
篩選函式,決定是否應接受提供的訊息。
_PScheduler
Scheduler
物件,在其內會排定 call
傳訊區塊的傳播工作。
_PScheduleGroup
ScheduleGroup
物件,在其內會排定 call
傳訊區塊的傳播工作。 所使用的 Scheduler
物件由排程群組所隱含。
備註
如果您未指定 _PScheduler
或 _PScheduleGroup
參數,執行階段會使用預設排程器。
此類型 _Call_method
是具有簽章 void (T const &)
的函式,此訊息區塊會叫用此 call
訊息區塊來處理訊息。
此類型 filter_method
是具有簽章 bool (T const &)
的函式,由此 call
傳訊區塊叫用,以判斷它是否應該接受提供的訊息。
~叫
call
終結傳訊區塊。
~call();
process_input_messages
在輸入訊息上執行呼叫函式。
virtual void process_input_messages(_Inout_ message<T>* _PMessage);
參數
_PMessage
要處理的訊息指標。
process_message
處理此 call
傳訊區塊所接受的訊息。
virtual void process_message(_Inout_ message<T>* _PMessage);
參數
_PMessage
要處理的訊息指標。
propagate_message
以異步方式將訊息從 ISource
區塊傳遞至這個 call
傳訊區塊。 propagate
當來源區塊呼叫時,方法會叫用它。
virtual message_status propagate_message(
_Inout_ message<T>* _PMessage,
_Inout_ ISource<T>* _PSource);
參數
_PMessage
message
物件的指標。
_PSource
提供訊息的來源區塊指標。
傳回值
send_message
以同步方式將訊息從 ISource
區塊傳遞至此 call
傳訊區塊。 send
當來源區塊呼叫時,方法會叫用它。
virtual message_status send_message(
_Inout_ message<T>* _PMessage,
_Inout_ ISource<T>* _PSource);
參數
_PMessage
message
物件的指標。
_PSource
提供訊息的來源區塊指標。
傳回值
supports_anonymous_source
覆寫 supports_anonymous_source
方法,指出這個區塊可以接受未連結的來源提供給它的訊息。
virtual bool supports_anonymous_source();
傳回值
true
因為區塊不會延後提供的訊息。