Classe transformer
Un bloc de messagerie transformer est un propagator_block ordonné, multi-sources, à cible unique qui peut accepter des messages d'un type et stocker un nombre illimité de messages d'un type différent.
template<
class _Input,
class _Output
>
class transformer : public propagator_block<single_link_registry<ITarget<_Output>>, multi_link_registry<ISource<_Input>>>;
Paramètres
_Input
Le type de charge utile des messages acceptés par la mémoire tampon._Output
Le type de charge utile des messages stockés et propagés à l'extérieur par la mémoire tampon.
Membres
Constructeurs publics
Nom |
Description |
---|---|
Surchargé. Construit un bloc de messagerie transformer. |
|
Détruit le bloc de messagerie transformer. |
Méthodes protégées
Nom |
Description |
---|---|
Accepte un message qui a été transmis par ce bloc de messagerie transformer, en transférant la propriété à l'appelant. |
|
Consomme un message offert précédemment par le transformer et réservé par la cible, en transférant la propriété à l'appelant. |
|
Rappel qui notifie qu'une nouvelle cible a été liée à ce bloc de messagerie transformer. |
|
Passe un message de façon asynchrone d'un bloc ISource à ce bloc de messagerie transformer. Il est appelé par la méthode propagate, en cas d'appel par un bloc source. |
|
Exécute la fonction de transformateur sur le message d'entrée et essaie d'offrir le message résultant à toutes les cibles liées. |
|
Libère une réservation de message précédente. (Substitue source_block::release_message.) |
|
Réserve un message précédemment offert par ce bloc de messagerie transformer. (Substitue source_block::reserve_message.) |
|
Reprend la propagation après qu'une réservation a été libérée. (Substitue source_block::resume_propagation.) |
|
Passe de façon synchrone un message du bloc ISource au bloc de messagerie transformer. Il est appelé par la méthode send, en cas d'appel par un bloc source. |
Notes
Pour plus d'informations, consultez Blocs de messages asynchrones.
Hiérarchie d'héritage
Configuration requise
En-tête : agents.h
Espace de noms d'accès : Concurrency