다음을 통해 공유


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 블록에서 ISourcecall 메시징 블록으로 메시지를 비동기적으로 전달합니다. 소스 블록에서 호출할 propagate 때 메서드에 의해 호출됩니다.
send_message 블록에서 ISourcecall 메시징 블록으로 메시지를 동기적으로 전달합니다. 소스 블록에서 호출할 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
허용되는 각 메시지에 대해 호출되는 함수입니다.

_필터
제공된 메시지를 수락해야 하는지 여부를 결정하는 필터 함수입니다.

_PScheduler
Scheduler 메시징 블록의 전파 작업이 예약되는 call 개체입니다.

_PScheduleGroup
ScheduleGroup 메시징 블록의 전파 작업이 예약되는 call 개체입니다. 사용된 Scheduler 개체는 일정 그룹에서 암시됩니다.

설명

런타임은 _PScheduler 또는 _PScheduleGroup 매개 변수를 지정하지 않는 경우 기본 스케줄러를 사용합니다.

이 형식 _Call_method 은 메시지를 처리하기 위해 이 call 메시징 블록에서 호출하는 서명 void (T const &) 이 있는 functor입니다.

이 형식 filter_method 은 제공된 메시지를 수락해야 하는지 여부를 결정하기 위해 이 call 메시징 블록에서 호출하는 서명 bool (T const &) 이 있는 functor입니다.

~외침

메시징 블록을 삭제합니다 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

블록에서 ISourcecall 메시징 블록으로 메시지를 비동기적으로 전달합니다. 소스 블록에서 호출할 propagate 때 메서드에 의해 호출됩니다.

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

매개 변수

_PMessage
message 개체에 대한 포인터입니다.

_PSource
메시지를 제공하는 소스 블록에 대한 포인터입니다.

Return Value

대상이 메시지로 무엇을 하기로 결정했는지에 대한 message_status 표시입니다.

send_message

블록에서 ISourcecall 메시징 블록으로 메시지를 동기적으로 전달합니다. 소스 블록에서 호출할 send 때 메서드에 의해 호출됩니다.

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

매개 변수

_PMessage
message 개체에 대한 포인터입니다.

_PSource
메시지를 제공하는 소스 블록에 대한 포인터입니다.

Return Value

대상이 메시지로 무엇을 하기로 결정했는지에 대한 message_status 표시입니다.

supports_anonymous_source

supports_anonymous_source 메서드를 재정의하여 이 블록이 연결되지 않은 소스에서 제공하는 메시지를 수락할 수 있음을 나타냅니다.

virtual bool supports_anonymous_source();

Return Value

true 블록이 제공된 메시지를 연기하지 않기 때문입니다.

참고 항목

concurrency 네임스페이스
transformer 클래스