Share via


propagator_block, classe

La classe propagator_block est une classe de base abstraite pour les blocs de messages qui sont à la fois une source et une cible. Il combine les fonctionnalités des classes target_block et source_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>;

Paramètres

  • _TargetLinkRegistry
    Registre de liens à utiliser pour contenir les liens cibles.

  • _SourceLinkRegistry
    Registre de liens à utiliser pour contenir les liens source.

  • _MessageProcessorType
    Type de processeur pour le traitement du message.

Membres

Typedefs publics

Nom

Description

source_iterator

Type de l'itérateur pour source_link_manager pour ce propagator_block.

Constructeurs publics

Nom

Description

propagator_block::propagator_block, constructeur

Construit un objet propagator_block.

propagator_block::~propagator_block, destructeur

Détruit un objet propagator_block.

Méthodes publiques

Nom

Description

propagator_block::propagate, méthode

Passe un message de façon asynchrone d'un bloc source à ce bloc cible.

propagator_block::send, méthode

Démarre de façon synchrone un message de ce bloc. Appelé par un bloc ISource. Lorsque cette fonction se termine, le message est déjà propagé dans le bloc.

Méthodes protégées

Nom

Description

propagator_block::decline_incoming_messages, méthode

Indique au bloc que les nouveaux messages doivent être refusés.

propagator_block::initialize_source_and_target, méthode

Initialise l'objet de base. Spécifiquement, l'objet message_processor doit être initialisé.

propagator_block::link_source, méthode

Lie un bloc source spécifié à cet objet propagator_block.

propagator_block::propagate_message, méthode

En cas de substitution dans une classe dérivée, cette méthode passe de façon asynchrone un message d'un bloc ISource à cet objet propagator_block. Il est appelé par la méthode propagate, en cas d'appel par un bloc source.

propagator_block::register_filter, méthode

Inscrit une méthode de filtre qui sera appelée sur chaque message reçu.

propagator_block::remove_network_links, méthode

Supprime tous les liens de réseau source et cible de cet objet propagator_block.

propagator_block::send_message, méthode

En cas de substitution dans une classe dérivée, cette méthode passe de façon synchrone un message d'un bloc ISource à cet objet propagator_block. Il est appelé par la méthode send, en cas d'appel par un bloc source.

propagator_block::unlink_source, méthode

Dissocie un bloc source spécifié de cet objet propagator_block.

propagator_block::unlink_sources, méthode

Dissocie tous les blocs source de cet objet propagator_block. (Substitue ITarget::unlink_sources.)

Notes

Pour éviter l'héritage multiple, la classe propagator_block hérite de la classe source_block et de la classe abstraite ITarget. La plupart des fonctionnalités de la classe target_block sont répliquées ici.

Hiérarchie d'héritage

ISource

source_block

ITarget

propagator_block

Configuration requise

En-tête : agents.h

Espace de noms d'accès : Concurrency

Voir aussi

Référence

Concurrency, espace de noms

source_block, classe

ITarget, classe