call (clase)
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
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.