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 .)

備註

如需詳細資訊,請參閱 非同步消息塊

繼承階層架構

ITarget

target_block

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
提供訊息的來源區塊指標。

傳回值

message_status 指出目標決定對訊息執行的動作。

send_message

以同步方式將訊息從 ISource 區塊傳遞至此 call 傳訊區塊。 send當來源區塊呼叫時,方法會叫用它。

virtual message_status send_message(
    _Inout_ message<T>* _PMessage,
    _Inout_ ISource<T>* _PSource);

參數

_PMessage
message 物件的指標。

_PSource
提供訊息的來源區塊指標。

傳回值

message_status 指出目標決定對訊息執行的動作。

supports_anonymous_source

覆寫 supports_anonymous_source 方法,指出這個區塊可以接受未連結的來源提供給它的訊息。

virtual bool supports_anonymous_source();

傳回值

true 因為 區塊不會延後提供的訊息。

另請參閱

concurrency 命名空間
transformer 類別