Compartilhar via


Classe transformer

Um bloco da mensagem de transformer é um único destino, várias origem, propagator_block ordenado que podem aceitar mensagens de um tipo e é capaz de armazenar um número ilimitado de mensagens de um tipo diferente.

template<
   class _Input,
   class _Output
>
class transformer : public propagator_block<single_link_registry<ITarget<_Output>>, multi_link_registry<ISource<_Input>>>;

Parâmetros

  • _Input
    O tipo de carga útil de mensagens aceitas pelo buffer.

  • _Output
    O tipo de carga útil de mensagens armazenadas e propagadas para fora por buffer.

Membros

Construtores Públicos

Nome

Descrição

Construtor transformer::transformer

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

Destruidor transformer::~transformer

Destrói o bloco da mensagem de transformer .

Métodos Protegidos

Nome

Descrição

Método transformer::accept_message

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

Método transformer::consume_message

Consome uma mensagem anteriormente oferecida por transformer e reservada pelo destino, transferindo propriedade ao chamador.

Método transformer::link_target_notification

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

Método transformer::propagate_message

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

Método transformer::propagate_to_any_targets

Executa a função de transformador em mensagens de entrada.

Método transformer::release_message

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

Método transformer::reserve_message

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

Método transformer::resume_propagation

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

Método transformer::send_message

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

Método transformer::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

transformer

Requisitos

Cabeçalho: agents.h

Namespace: simultaneidade

Consulte também

Referência

Namespace Concurrency

classe da chamada