Share via


Classe single_assignment

Un bloc de messagerie single_assignment est un propagator_block de cible multiple, de source multiple et classé capable de stocker un message unique, écrit une seule fois.

template<
   class _Type
>
class single_assignment : public propagator_block<multi_link_registry<ITarget<_Type>>, multi_link_registry<ISource<_Type>>>;

Paramètres

  • _Type
    Le type de charge utile du message stocké et propagé par la mémoire tampon.

Membres

Constructeurs publics

Nom

Description

single_assignment::single_assignment, constructeur

Surchargé. Construit un bloc de messagerie single_assignment.

single_assignment::~single_assignment, destructeur

Détruit le bloc de messagerie single_assignment.

Méthodes publiques

Nom

Description

single_assignment::has_value, méthode

Vérifie si ce bloc de messagerie single_assignment a déjà été initialisé avec une valeur.

single_assignment::value, méthode

Obtient une référence pour la charge utile actuelle du message qui est stocké dans le bloc de messagerie single_assignment.

Méthodes protégées

Nom

Description

single_assignment::accept_message, méthode

Accepte un message qui a été transmis par ce bloc de messagerie single_assignment, en retournant une copie du message à l'appelant.

single_assignment::consume_message, méthode

Consomme un message offert précédemment par le single_assignment et réservé par la cible, en retournant une copie du message à l'appelant.

single_assignment::link_target_notification, méthode

Rappel qui notifie qu'une nouvelle cible a été liée à ce bloc de messagerie single_assignment.

single_assignment::propagate_message, méthode

Passe un message de façon asynchrone d'un bloc ISource à ce bloc de messagerie single_assignment. Il est appelé par la méthode propagate, en cas d'appel par un bloc source.

single_assignment::propagate_to_any_targets, méthode

Place le message_PMessage dans ce bloc de messagerie single_assignment et l'offres à toutes les cibles liées.

single_assignment::release_message, méthode

Libère une réservation de message précédente. (Substitue source_block::release_message.)

single_assignment::reserve_message, méthode

Réserve un message précédemment offert par ce bloc de messagerie single_assignment. (Substitue source_block::reserve_message.)

single_assignment::resume_propagation, méthode

Reprend la propagation après qu'une réservation a été libérée. (Substitue source_block::resume_propagation.)

single_assignment::send_message, méthode

Passe de façon synchrone un message du bloc ISource au bloc de messagerie single_assignment. Il est appelé par la méthode send, en cas d'appel par un bloc source.

Notes

Un bloc de messagerie single_assignment propage des copies de son message vers chaque cible.

Pour plus d'informations, consultez Blocs de messages asynchrones.

Hiérarchie d'héritage

ISource

source_block

ITarget

propagator_block

single_assignment

Configuration requise

En-tête : agents.h

Espace de noms d'accès : Concurrency

Voir aussi

Référence

Concurrency, espace de noms

Classe overwrite_buffer

Classe unbounded_buffer