Condividi tramite


Classe propagator_block

La classe propagator_block è una classe base astratta per blocchi di messaggio che sono sia origine sia destinazione.Combina la funzionalità delle classi source_block e target_block.

template<
   class _TargetLinkRegistry,
   class _SourceLinkRegistry,
   class _MessageProcessorType = ordered_message_processor<typename _TargetLinkRegistry::type::type>
>
class propagator_block : public source_block<_TargetLinkRegistry, _MessageProcessorType>, public ITarget<typename _SourceLinkRegistry::type::source_type>;

Parametri

  • _TargetLinkRegistry
    Registro di sistema del collegamento da utilizzare per il mantenimento dei collegamenti di destinazione.

  • _SourceLinkRegistry
    Registro di sistema del collegamento da utilizzare per il mantenimento dei collegamenti di origine.

  • _MessageProcessorType
    Tipo di processore per elaborazione del messaggio.

Membri

Dd504864.collapse_all(it-it,VS.110).gifTypedef pubblici

Nome

Descrizione

source_iterator

Tipo di iteratore per source_link_manager di propagator_block.

Dd504864.collapse_all(it-it,VS.110).gifCostruttori pubblici

Nome

Descrizione

Costruttore propagator_block::propagator_block

Costruisce un oggetto propagator_block.

Distruttore propagator_block::~propagator_block

Elimina un oggetto propagator_block.

Dd504864.collapse_all(it-it,VS.110).gifMetodi pubblici

Nome

Descrizione

Metodo propagator_block::propagate

Consente di passare in modo asincrono un messaggio da un blocco di origine a quello di destinazione.

Metodo propagator_block::send

Consente di avviare in modo sincrono un messaggio per questo blocco.Chiamato da un blocco ISource.Quando la funzione viene completata, il messaggio sarà già stato propagato nel blocco.

Dd504864.collapse_all(it-it,VS.110).gifMetodi protetti

Nome

Descrizione

Metodo propagator_block::decline_incoming_messages

Consente di indicare il blocco che deve rifiutare i nuovi messaggi.

Metodo propagator_block::initialize_source_and_target

Consente di inizializzare l'oggetto di base.In particolare, l'oggetto message_processor ha bisogno di essere inizializzato.

Metodo propagator_block::link_source

Collega un blocco di origine specificato all'oggetto propagator_block.

Metodo propagator_block::process_input_messages

I messaggi di input di.Ciò è utile solo per i blocchi di propagazione, che derivano da source_block (override source_block::process_input_messages).

Metodo propagator_block::propagate_message

Quando sottoposto a override in una classe derivata, il metodo passa in modo asincrono un messaggio da un blocco ISource all'oggetto propagator_block.Viene richiamato dal metodo propagate se chiamato da un blocco di origine.

Metodo propagator_block::register_filter

Consente di registrare un metodo di filtro che verrà richiamato a ogni messaggio ricevuto.

Metodo propagator_block::remove_network_links

Consente di rimuovere tutti i collegamenti di rete di origine e di destinazione da tale oggetto propagator_block.

Metodo propagator_block::send_message

Quando sottoposto a override in una classe derivata, il metodo passa in modo sincrono un messaggio da un blocco ISource all'oggetto propagator_block.Viene richiamato dal metodo send se chiamato da un blocco di origine.

Metodo propagator_block::unlink_source

Consente di scollegare un blocco di origine specificato dall'oggetto propagator_block.

Metodo propagator_block::unlink_sources

Consente di scollegare tutti i blocchi di origine dall'oggetto propagator_block.(Esegue l'override di ITarget::unlink_sources.)

Note

Per ottenere l'ereditarietà multipla, la classe propagator_block eredita da quella source_block e da quella astratta ITarget.La maggior parte delle funzioni nella classe target_block è replicata qui.

Gerarchia di ereditarietà

ISource

ITarget

source_block

propagator_block

Requisiti

Header: agents.h

Concorrenza diSpazio dei nomi:

Vedere anche

Riferimenti

Spazio dei nomi concurrency

Classe source_block

Classe ITarget