Compartir a través de


Clase unbounded_buffer

Un bloque de mensajería unbounded_buffer es un bloque propagator_block de destino único, de varios orígenes y ordenado capaz de almacenar un número ilimitado de mensajes.

template<
   class _Type
>
class unbounded_buffer : public propagator_block<multi_link_registry<ITarget<_Type>>, multi_link_registry<ISource<_Type>>>;

Parámetros

  • _Type
    El tipo de carga de los mensajes almacenados y propagados por el búfer.

Miembros

Constructores públicos

Name

Descripción

unbounded_buffer::unbounded_buffer (Constructor)

Sobrecargado. Construye un bloque de mensajería unbounded_buffer.

unbounded_buffer::~unbounded_buffer (Destructor)

Destruye el bloque de mensajería unbounded_buffer.

Métodos públicos

Name

Descripción

unbounded_buffer::dequeue (Método)

Quita un elemento del bloque de mensajería unbounded_buffer.

unbounded_buffer::enqueue (Método)

Agrega un elemento al bloque de mensajería unbounded_buffer.

Métodos protegidos

Name

Descripción

unbounded_buffer::accept_message (Método)

Acepta un mensaje que fue proporcionado por este bloque de mensajería unbounded_buffer, transfiriendo la propiedad al llamador.

unbounded_buffer::consume_message (Método)

Consume un mensaje que fue proporcionado anteriormente por el bloque de mensajería unbounded_buffer y reservado por el destino, transfiriendo la propiedad al llamador.

unbounded_buffer::link_target_notification (Método)

Una devolución de llamada que notifica que se ha vinculado un nuevo destino a este bloque de mensajería unbounded_buffer.

unbounded_buffer::process_input_messages (Método)

Coloca message_PMessage en este bloque de mensajería unbounded_buffer e intenta ofrecerlo a todos los destinos vinculados.

unbounded_buffer::propagate_message (Método)

De forma asincrónica, pasa un mensaje de un bloque ISource a este bloque de mensajería unbounded_buffer. Lo invoca el método propagate, cuando lo llama un bloque de origen.

unbounded_buffer::propagate_output_messages (Método)

Coloca message_PMessage en este bloque de mensajería unbounded_buffer e intenta ofrecerlo a todos los destinos vinculados. (Reemplaza source_block::propagate_output_messages.)

unbounded_buffer::release_message (Método)

Libera una reserva de mensaje anterior. (Invalida source_block::release_message.)

unbounded_buffer::reserve_message (Método)

Reserva un mensaje ofrecido previamente por este bloque de mensajería unbounded_buffer. (Invalida source_block::reserve_message.)

unbounded_buffer::resume_propagation (Método)

Reanuda la propagación una vez liberada una reserva. (Invalida source_block::resume_propagation.)

unbounded_buffer::send_message (Método)

De forma sincrónica, pasa un mensaje de un bloque ISource a este bloque de mensajería unbounded_buffer. Lo invoca el método send, cuando lo llama un bloque de origen.

unbounded_buffer::supports_anonymous_source (Método)

Invalida el método de supports_anonymous_source para indicar que este bloque puede aceptar mensajes proporcionados al por un origen que no están vinculados. (Reemplaza ITarget::supports_anonymous_source.)

Comentarios

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

Jerarquía de herencia

ISource

ITarget

source_block

propagator_block

unbounded_buffer

Requisitos

Encabezado: agents.h

Espacio de nombres: simultaneidad

Vea también

Referencia

concurrency (Espacio de nombres)

Clase overwrite_buffer

Clase single_assignment