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。) |
备注
有关详细信息,请参阅异步消息块。
继承层次结构
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
,因为该块没有推迟所提供的消息。