Partager via


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();

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.

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.

En cas de substitution dans une classe dérivée, dissocie tous les blocs sources de ce ITarget bloc.

virtual void unlink_sources() = 0;

Voir aussi

accès concurrentiel Namespace
ISource, classe