Compartilhar via


Classe unbounded_buffer

Um bloco da mensagem de unbounded_buffer é uma para mais idiomas de destino, várias origem, propagator_block ordenado capaz de armazenar um número ilimitado de mensagens.

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

Parâmetros

  • _Type
    O tipo de carga útil de mensagens armazenadas e propagadas pelo buffer.

Membros

Construtores Públicos

Nome

Descrição

Construtor unbounded_buffer::unbounded_buffer

Sobrecarregado. Constrói um bloco da mensagem de unbounded_buffer .

Destruidor unbounded_buffer::~unbounded_buffer

Destrói o bloco da mensagem de unbounded_buffer .

Métodos Públicos

Nome

Descrição

Método unbounded_buffer::dequeue

Remove um item do bloco da mensagem de unbounded_buffer .

Método unbounded_buffer::enqueue

Adiciona um item ao bloco da mensagem de unbounded_buffer .

Métodos Protegidos

Nome

Descrição

Método unbounded_buffer::accept_message

Aceita uma mensagem que é oferecida por esse bloco da mensagem de unbounded_buffer , transferindo propriedade ao chamador.

Método unbounded_buffer::consume_message

Consome uma mensagem anteriormente oferecida pelo bloco da mensagem de unbounded_buffer e reservada pelo destino, transferindo propriedade ao chamador.

Método unbounded_buffer::link_target_notification

Um retorno de chamada que notifica que um novo destino esteve vinculado a esse bloco da mensagem de unbounded_buffer .

Método unbounded_buffer::process_input_messages

Coloca message_PMessage do bloco da mensagem de unbounded_buffer e tenta oferecê-lo em todos os destinos vinculados.

Método unbounded_buffer::propagate_message

Passa de forma assíncrona uma mensagem de um bloco de ISource a esse bloco da mensagem de unbounded_buffer . É invocado pelo método de propagate , quando chamado por um bloco de origem.

Método unbounded_buffer::propagate_output_messages

Coloca message_PMessage do bloco da mensagem de unbounded_buffer e tenta oferecê-lo em todos os destinos vinculados. (Substitui source_block::propagate_output_messages.)

Método unbounded_buffer::release_message

Libera uma reserva anterior da mensagem. (Substitui source_block::release_message.)

Método unbounded_buffer::reserve_message

Reserva uma mensagem oferecida anteriormente por esse bloco da mensagem de unbounded_buffer . (Substitui source_block::reserve_message.)

Método unbounded_buffer::resume_propagation

Propagação de resumos depois que uma reserva foi liberada. (Substitui source_block::resume_propagation.)

Método unbounded_buffer::send_message

Passa de forma síncrona uma mensagem de um bloco de ISource a esse bloco da mensagem de unbounded_buffer . É invocado pelo método de send , quando chamado por um bloco de origem.

Método unbounded_buffer::supports_anonymous_source

Substitui o método de supports_anonymous_source para indicar que esse bloco pode aceitar as mensagens são oferecidas a ele por uma origem que não seja vinculada. (Substitui ITarget::supports_anonymous_source.)

Comentários

Para obter mais informações, consulte Blocos de mensagens assíncronos.

Hierarquia de Herança

ISource

ITarget

source_block

propagator_block

unbounded_buffer

Requisitos

Cabeçalho: agents.h

Namespace: simultaneidade

Consulte também

Referência

Namespace Concurrency

Classe overwrite_buffer

Classe single_assignment