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