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 析构函数 销毁 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

命名空间: 并发

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
将为每个接受的消息调用的函数。

_Filter
一个筛选器函数,用于确定是否应接受提供的消息。

_PScheduler
在其中计划了 Scheduler 消息块的传播任务的 call 对象。

_PScheduleGroup
在其中计划了 ScheduleGroup 消息块的传播任务的 call 对象。 所用 Scheduler 对象由该计划组提示。

注解

如果未指定 _PScheduler_PScheduleGroup 函数,运行时将使用默认的计划程序。

类型 _Call_method 是一个具有 void (T const &) 签名的函子,call 消息块调用它来处理消息。

类型 filter_method 是一个具有 bool (T const &) 签名的函子,由 call 消息块调用来确定它是否应接受提供的消息。

~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,因为该块没有推迟所提供的消息。

另请参阅

并发命名空间
transformer 类