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 |
---|---|
Construit un objet propagator_block. |
|
Détruit un objet propagator_block. |
Méthodes publiques
Nom |
Description |
---|---|
Passe un message de façon asynchrone d'un bloc source à ce bloc cible. |
|
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 |
---|---|
Indique au bloc que les nouveaux messages doivent être refusés. |
|
Initialise l'objet de base. Spécifiquement, l'objet message_processor doit être initialisé. |
|
Lie un bloc source spécifié à cet objet propagator_block. |
|
Messages d'entrée du processus. C'est uniquement utile pour les blocs de propagateur, qui dérivent de bloc source (remplace source_block::process_input_messages.) |
|
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. |
|
Inscrit une méthode de filtre qui sera appelée sur chaque message reçu. |
|
Supprime tous les liens de réseau source et cible de cet objet propagator_block. |
|
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. |
|
Dissocie un bloc source spécifié de cet objet propagator_block. |
|
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
propagator_block
Configuration requise
En-tête : agents.h
Espace de noms : concurrency