Oharra
Orrialde honetara sartzeak baimena behar du. Saioa hasteko edo direktorioak aldatzen saia zaitezke.
Orrialde honetara sartzeak baimena behar du. Direktorioak aldatzen saia zaitezke.
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.