Share via


Clase call

Un bloque de mensajería call es un target_block con varios orígenes y ordenado, que invoca una función especificada al recibir un mensaje.

Sintaxis

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

Parámetros

T
El tipo de carga de los mensajes propagados a este bloque.

_FunctorType
La firma de funciones que este bloque puede aceptar.

Miembros

Constructores públicos

Nombre Descripción
call Con sobrecarga. Construye un bloque de mensajería call .
~call Destructor Destruye el bloque de mensajería call.

Métodos protegidos

Nombre Descripción
process_input_messages Ejecuta la función de llamada en los mensajes de entrada.
process_message Procesa un mensaje aceptado por este call bloque de mensajería.
propagate_message Pasa de forma asincrónica un mensaje de un bloque ISource a este bloque de mensajería call. Se invoca mediante el propagate método, cuando lo llama un bloque de origen.
send_message Pasa de forma sincrónica un mensaje de un ISource bloque a este call bloque de mensajería. Se invoca mediante el send método, cuando lo llama un bloque de origen.
supports_anonymous_source Invalida el supports_anonymous_source método para indicar que este bloque puede aceptar mensajes ofrecidos por un origen que no está vinculado. (Invalida ITarget::supports_anonymous_source.)

Comentarios

Para obtener más información, consulte Bloques de mensajes asincrónicos.

Jerarquía de herencia

ITarget

target_block

call

Requisitos

Encabezado: agents.h

Espacio de nombres: simultaneidad

call

Construye un bloque de mensajería 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
Función que se invocará para cada mensaje aceptado.

_Filter
Función de filtro que determina si se deben aceptar los mensajes ofrecidos.

_PScheduler
El objeto Scheduler dentro del que se programa la tarea de propagación para el bloque de mensajería call .

_PScheduleGroup
El objeto ScheduleGroup dentro del que se programa la tarea de propagación para el bloque de mensajería call . El objeto Scheduler utilizado está implícito en el grupo de programación.

Comentarios

El runtime usa el programador predeterminado si no se especifican los parámetros _PScheduler o _PScheduleGroup .

El tipo _Call_method es un functor con firma void (T const &) invocada por este call bloque de mensajería para procesar un mensaje.

El tipo filter_method es un functor con firma bool (T const &) invocada por este bloque de mensajería call para determinar si debe aceptar o no un mensaje ofrecido.

~Llamar

Destruye el bloque de mensajería call.

~call();

process_input_messages

Ejecuta la función de llamada en los mensajes de entrada.

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

Parámetros

_PMessage
Puntero al mensaje que se va a tratar.

process_message

Procesa un mensaje aceptado por este call bloque de mensajería.

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

Parámetros

_PMessage
Puntero al mensaje que se va a tratar.

propagate_message

Pasa de forma asincrónica un mensaje de un bloque ISource a este bloque de mensajería call. Se invoca mediante el propagate método, cuando lo llama un bloque de origen.

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

Parámetros

_PMessage
Un puntero al objeto message.

_PSource
Puntero al bloque de origen que ofrece el mensaje.

Valor devuelto

Una indicación message_status de lo que el destino decidió hacer con el mensaje.

send_message

Pasa de forma sincrónica un mensaje de un ISource bloque a este call bloque de mensajería. Se invoca mediante el send método, cuando lo llama un bloque de origen.

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

Parámetros

_PMessage
Un puntero al objeto message.

_PSource
Puntero al bloque de origen que ofrece el mensaje.

Valor devuelto

Una indicación message_status de lo que el destino decidió hacer con el mensaje.

supports_anonymous_source

Invalida el supports_anonymous_source método para indicar que este bloque puede aceptar mensajes ofrecidos por un origen que no está vinculado.

virtual bool supports_anonymous_source();

Valor devuelto

true porque el bloque no pospone los mensajes ofrecidos.

Consulte también

concurrency (espacio de nombres)
transformer (clase)