ITarget, classe
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;