Classe da chamada

Um bloco de mensagens call é um target_block de várias fontes ordenado que invoca uma função especificada ao receber uma mensagem.

Sintaxe

template<class T, class _FunctorType = std::function<void(T const&)>>
class call : public target_block<multi_link_registry<ISource<T>>>;

Parâmetros

T
O tipo de conteúdo das mensagens propagadas para esse bloco.

_FunctorType
A assinatura de funções que esse bloco pode aceitar.

Membros

Construtores públicos

Nome Descrição
call Sobrecarregado. Constrói um bloco de mensagens call.
Destruidor ~call Destrói o bloco de mensagens call.

Métodos protegidos

Nome Descrição
process_input_messages Executa a função de chamada nas mensagens de entrada.
process_message Processa uma mensagem que foi aceita por esse bloco de mensagens call.
propagate_message Passa uma mensagem de modo assíncrono de um bloco ISource para este bloco de mensagens call. Ele é invocado pelo método propagate, quando chamado por um bloco de origem.
send_message De maneira síncrona, passa uma mensagem de um bloco ISource para este bloco de mensagens call. Ele é invocado pelo método send, quando chamado por um bloco de origem.
supports_anonymous_source Substitui o método supports_anonymous_source para indicar que esse bloco pode aceitar mensagens oferecidas a ele por uma fonte que não está vinculada. (Substitui ITarget::supports_anonymous_source.)

Comentários

Para mais informações, confira Blocos de mensagens assíncronas.

Hierarquia de herança

ITarget

target_block

call

Requisitos

Cabeçalho: agents.h

Namespace: concurrency

call

Constrói um bloco de mensagens 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);

Parâmetros

_Func
Uma função que será invocada para cada mensagem aceita.

_Filter
Uma função de filtro que determina se as mensagens oferecidas devem ser aceitas.

_PScheduler
O objeto Scheduler no qual a tarefa de propagação do bloco de mensagens call está agendada.

_PScheduleGroup
O objeto ScheduleGroup no qual a tarefa de propagação do bloco de mensagens call está agendada. O objeto Scheduler usado é implícito pelo grupo agendado.

Comentários

O runtime usará o agendador padrão se você não especificar os parâmetros _PScheduler ou _PScheduleGroup.

O tipo _Call_method é um functor com assinatura void (T const &) invocado por esse bloco de mensagens call para processar uma mensagem.

O tipo filter_method é um functor com assinatura bool (T const &) invocado por esse bloco de mensagens call para determinar se ele deve ou não aceitar uma mensagem oferecida.

~chamar

Destrói o bloco de mensagens call.

~call();

process_input_messages

Executa a função de chamada nas mensagens de entrada.

virtual void process_input_messages(_Inout_ message<T>* _PMessage);

Parâmetros

_PMessage
Um ponteiro para a mensagem que deve ser tratada.

process_message

Processa uma mensagem que foi aceita por esse bloco de mensagens call.

virtual void process_message(_Inout_ message<T>* _PMessage);

Parâmetros

_PMessage
Um ponteiro para a mensagem que deve ser tratada.

propagate_message

Passa uma mensagem de modo assíncrono de um bloco ISource para este bloco de mensagens call. Ele é invocado pelo método propagate, quando chamado por um bloco de origem.

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

Parâmetros

_PMessage
Um ponteiro para o message objeto.

_PSource
Um ponteiro para o bloco de origem que oferece a mensagem.

Valor de retorno

Uma indicação de message_status do que o destino decidiu fazer com a mensagem.

send_message

De maneira síncrona, passa uma mensagem de um bloco ISource para este bloco de mensagens call. Ele é invocado pelo método send, quando chamado por um bloco de origem.

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

Parâmetros

_PMessage
Um ponteiro para o message objeto.

_PSource
Um ponteiro para o bloco de origem que oferece a mensagem.

Valor de retorno

Uma indicação de message_status do que o destino decidiu fazer com a mensagem.

supports_anonymous_source

Substitui o método supports_anonymous_source para indicar que esse bloco pode aceitar mensagens oferecidas a ele por uma fonte que não está vinculada.

virtual bool supports_anonymous_source();

Valor de retorno

true porque o bloco não adia as mensagens oferecidas.

Confira também

Namespace de simultaneidade
Classe transformer