Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La classe ITarget est l'interface de tous les blocs cibles. Les blocs cibles consomment les messages qui leur sont offerts par les blocs ISource.
Syntaxe
template<class T>
class ITarget;
Paramètres
T
Type de données de la charge utile dans les messages acceptés par le bloc cible.
Membres
Typedefs publics
| Nom | Description |
|---|---|
filter_method |
Signature d’une méthode utilisée par le bloc qui retourne une bool valeur pour déterminer si un message proposé doit être accepté. |
type |
Alias de type pour T. |
Constructeurs publics
| Nom | Description |
|---|---|
| ~Destructeur ITarget | Détruit l’objet ITarget . |
Méthodes publiques
| Nom | Description |
|---|---|
| propager | En cas de substitution dans une classe dérivée, transmet de façon asynchrone un message d’un bloc source à ce bloc cible. |
| send | En cas de substitution dans une classe dérivée, transmet de façon synchrone un message au bloc cible. |
| supports_anonymous_source | En cas de substitution dans une classe dérivée, retourne true ou false selon que le bloc de messages accepte les messages proposés par une source qui n’est pas liée à celle-ci. Si la méthode substituée retourne true, la cible ne peut pas reporter un message proposé, car la consommation d’un message reporté ultérieurement nécessite que la source soit identifiée dans son registre de liens sources. |
Méthodes protégées
| Nom | Description |
|---|---|
| link_source | En cas de substitution dans une classe dérivée, lie un bloc source spécifié à ce ITarget bloc. |
| unlink_source | En cas de substitution dans une classe dérivée, dissocie un bloc source spécifié de ce ITarget bloc. |
| unlink_sources | En cas de substitution dans une classe dérivée, dissocie tous les blocs sources de ce ITarget bloc. |
Notes
Pour plus d’informations, consultez Blocs de messages asynchrones.
Hiérarchie d'héritage
ITarget
Spécifications
En-tête : agents.h
Espace de noms : concurrency
~ITarget
Détruit l’objet ITarget .
virtual ~ITarget();
link_source
En cas de substitution dans une classe dérivée, lie un bloc source spécifié à ce ITarget bloc.
virtual void link_source(_Inout_ ISource<T>* _PSource) = 0;
Paramètres
_PSource
Bloc ISource lié à ce ITarget bloc.
Notes
Cette fonction ne doit pas être appelée directement sur un ITarget bloc. Les blocs doivent être connectés à l’aide de la link_target méthode sur ISource les blocs, ce qui appelle la link_source méthode sur la cible correspondante.
propager
En cas de substitution dans une classe dérivée, transmet de façon asynchrone un message d’un bloc source à ce bloc cible.
virtual message_status propagate(
_Inout_opt_ message<T>* _PMessage,
_Inout_opt_ ISource<T>* _PSource) = 0;
Paramètres
_PMessage
Pointeur vers l'objet message.
_PSource
Pointeur vers le bloc source offrant le message.
Valeur de retour
Une message_status indication de ce que la cible a décidé de faire avec le message.
Notes
La méthode lève une exception invalid_argument si le ou _PSource le _PMessage paramètre est NULL.
Envoyer
En cas de substitution dans une classe dérivée, transmet de façon synchrone un message au bloc cible.
virtual message_status send(
_Inout_ message<T>* _PMessage,
_Inout_ ISource<T>* _PSource) = 0;
Paramètres
_PMessage
Pointeur vers l'objet message.
_PSource
Pointeur vers le bloc source offrant le message.
Valeur de retour
Une message_status indication de ce que la cible a décidé de faire avec le message.
Notes
La méthode lève une exception invalid_argument si le ou _PSource le _PMessage paramètre est NULL.
L’utilisation de la méthode en dehors de l’initiation send des messages et la propagation de messages au sein d’un réseau est dangereuse et peut entraîner un blocage.
Lorsqu’il send est retourné, le message a déjà été accepté et transféré dans le bloc cible, ou il a été refusé par la cible.
supports_anonymous_source
En cas de substitution dans une classe dérivée, retourne true ou false selon que le bloc de messages accepte les messages proposés par une source qui n’est pas liée à celle-ci. Si la méthode substituée retourne true, la cible ne peut pas reporter un message proposé, car la consommation d’un message différé à un moment ultérieur nécessite que la source soit identifiée dans son registre de liens sourds.
virtual bool supports_anonymous_source();
Valeur de retour
true si le bloc peut accepter un message provenant d’une source qui n’est pas liée false autrement.
unlink_source
En cas de substitution dans une classe dérivée, dissocie un bloc source spécifié de ce ITarget bloc.
virtual void unlink_source(_Inout_ ISource<T>* _PSource) = 0;
Paramètres
_PSource
Bloc ISource qui n’est pas dissocié de ce ITarget bloc.
Notes
Cette fonction ne doit pas être appelée directement sur un ITarget bloc. Les blocs doivent être déconnectés à l’aide des unlink_target méthodes ou unlink_targets sur ISource des blocs, qui appellent la unlink_source méthode sur la cible correspondante.
unlink_sources
En cas de substitution dans une classe dérivée, dissocie tous les blocs sources de ce ITarget bloc.
virtual void unlink_sources() = 0;