Partager via


source_block, classe

La classe source_block est une classe de base abstraite pour les blocs source uniquement. La classe fournit une fonctionnalité basique de gestion des liaisons et vérifie les erreurs courantes.

template<
   class _TargetLinkRegistry,
   class _MessageProcessorType = ordered_message_processor<typename _TargetLinkRegistry::type::type>
>
class source_block : public ISource<typename _TargetLinkRegistry::type::type>;

Paramètres

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

  • _MessageProcessorType
    Type de processeur pour le traitement du message.

Membres

Typedefs publics

Nom

Description

target_iterator

Itérateur pour parcourir les cibles connectées.

Constructeurs publics

Nom

Description

source_block::source_block, constructeur

Construit un objet source_block.

source_block::~source_block, destructeur

Détruit l'objet source_block.

M&#233;thodes publiques

Nom

Description

source_block::accept, méthode

Accepte un message qui a été transmis par cet objet source_block, en transférant la propriété à l'appelant.

source_block::acquire_ref, méthode

Acquiert un décompte de références sur cet objet source_block, pour empêcher la suppression.

source_block::consume, méthode

Consomme un message offert précédemment par cet objet source_block et réservé avec succès par la cible, en transférant la propriété à l'appelant.

source_block::link_target, méthode

Lie un bloc cible à cet objet source_block.

source_block::release, méthode

Libère une réservation de message réussie précédente.

source_block::release_ref, méthode

Libère un nombre de références sur cet objet source_block.

source_block::reserve, méthode

Réserve un message précédemment offert par cet objet source_block.

source_block::unlink_target, méthode

Dissocie un bloc cible de cet objet source_block.

source_block::unlink_targets, méthode

Dissocie tous les blocs cibles de cet objet source_block. (Substitue ISource::unlink_targets.)

Méthodes protégées

Nom

Description

source_block::accept_message, méthode

En cas de substitution dans une classe dérivée, accepte un message offert par la source. Les blocs de messages doivent substituer cette méthode pour valider le _MsgId et retourner un message.

source_block::async_send, méthode

Place les messages en file d'attente et démarre une tâche de propagation de façon asynchrone, si cela n'a pas déjà été fait

source_block::consume_message, méthode

En cas de substitution dans une classe dérivée, consomme un message qui était précédemment réservé.

source_block::enable_batched_processing, méthode

Permet de traiter en lots pour ce bloc.

source_block::initialize_source, méthode

Initialise le message_propagator dans ce source_block.

source_block::link_target_notification, méthode

Rappel qui notifie qu'une nouvelle cible a été liée à cet objet source_block.

source_block::process_input_messages, méthode

Messages d'entrée du processus. Ce n'est utile que pour les blocs de propagateur, qui dérive de bloc source

source_block::propagate_output_messages, méthode

Messages de propagation aux cibles.

source_block::propagate_to_any_targets, méthode

En cas de substitution dans une classe dérivée, propage le message donné une à cible liée particulière ou à toutes. C'est la routine de propagation principale pour les blocs de messages.

source_block::release_message, méthode

En cas de substitution dans une classe dérivée, émet une réservation de message précédente.

source_block::remove_targets, méthode

Supprime tous les liens cibles de ce bloc source. Doit être appelé à partir du destructeur.

source_block::reserve_message, méthode

En cas de substitution dans une classe dérivée, réserve un message précédemment offert par cet objet source_block.

source_block::resume_propagation, méthode

En cas de substitution dans une classe dérivée, continue la propagation après qu'une réservation a été émise.

source_block::sync_send, méthode

Met en file d'attente de façon synchrone des messages et démarre une tâche de propagation, si cela n'a pas déjà été fait.

source_block::unlink_target_notification, méthode

Rappel qui notifie qu'une cible a été dissociée de cet objet source_block.

source_block::wait_for_outstanding_async_sends, méthode

Attend que toutes les propagations asynchrones soient terminées. Cette attente de rotation spécifique au propagateur est utilisée dans les destructeurs de blocs de messages pour veiller à ce que toutes les propagations asynchrones aient le temps de se terminer avant de détruire le bloc.

Notes

Les blocs de messages doivent dériver de ce bloc pour tirer parti de la gestion et synchronisation de liens et fournies par cette classe.

Hiérarchie d'héritage

ISource

source_block

Configuration requise

En-tête : agents.h

Espace de noms : concurrency

Voir aussi

Référence

concurrency, espace de noms

ISource, classe