Share via


ISource, classe

La classe ISource est l'interface de tous les blocs sources. Les blocs sources propagent les messages aux blocs ITarget.

Syntaxe

template<class T>
class ISource;

Paramètres

T
Type de données de la charge utile dans les messages générés par le bloc source.

Membres

Typedefs publics

Nom Description
source_type Alias de type pour T.

Constructeurs publics

Nom Description
~ISource Destructor Détruit l’objet ISource .

Méthodes publiques

Nom Description
Accepter En cas de substitution dans une classe dérivée, accepte un message proposé par ce ISource bloc, en transférant la propriété à l’appelant.
acquire_ref En cas de substitution dans une classe dérivée, acquiert un nombre de références sur ce ISource bloc pour empêcher la suppression.
Utiliser En cas de substitution dans une classe dérivée, consomme un message précédemment proposé par ce ISource bloc et correctement réservé par la cible, transférant la propriété à l’appelant.
link_target En cas de substitution dans une classe dérivée, lie un bloc cible à ce ISource bloc.
release En cas de substitution dans une classe dérivée, libère une réservation de message réussie précédente.
release_ref En cas de substitution dans une classe dérivée, libère un nombre de références sur ce ISource bloc.
reserve En cas de substitution dans une classe dérivée, réserve un message précédemment proposé par ce ISource bloc.
unlink_target En cas de substitution dans une classe dérivée, dissocie un bloc cible de ce ISource bloc, s’il est trouvé précédemment lié.
unlink_targets En cas de substitution dans une classe dérivée, dissocie tous les blocs cibles de ce ISource bloc.

Notes

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

Hiérarchie d'héritage

ISource

Spécifications

En-tête : agents.h

Espace de noms : concurrency

accepter

En cas de substitution dans une classe dérivée, accepte un message proposé par ce ISource bloc, en transférant la propriété à l’appelant.

virtual message<T>* accept(
    runtime_object_identity _MsgId,
    _Inout_ ITarget<T>* _PTarget) = 0;

Paramètres

_MsgId
Objet runtime_object_identity proposé message .

_PTarget
Pointeur vers le bloc cible appelant la accept méthode.

Valeur de retour

Pointeur vers le message dont l’appelant a désormais la propriété.

Notes

La accept méthode est appelée par une cible pendant qu’un message est proposé par ce ISource bloc. Le pointeur de message retourné peut être différent de celui passé dans la propagate méthode du ITarget bloc, si cette source décide d’effectuer une copie du message.

acquire_ref

En cas de substitution dans une classe dérivée, acquiert un nombre de références sur ce ISource bloc pour empêcher la suppression.

virtual void acquire_ref(_Inout_ ITarget<T>* _PTarget) = 0;

Paramètres

_PTarget
Pointeur vers le bloc cible qui appelle cette méthode.

Notes

Cette méthode est appelée par un ITarget objet lié à cette source pendant la link_target méthode.

consommer

En cas de substitution dans une classe dérivée, consomme un message précédemment proposé par ce ISource bloc et correctement réservé par la cible, transférant la propriété à l’appelant.

virtual message<T>* consume(
    runtime_object_identity _MsgId,
    _Inout_ ITarget<T>* _PTarget) = 0;

Paramètres

_MsgId
Objet runtime_object_identity réservé message .

_PTarget
Pointeur vers le bloc cible appelant la consume méthode.

Valeur de retour

Pointeur vers l’objet message dont l’appelant a désormais la propriété.

Notes

La consume méthode est similaire à accept, mais doit toujours être précédée d’un appel à reserve celui retourné true.

~Isource

Détruit l’objet ISource .

virtual ~ISource();

En cas de substitution dans une classe dérivée, lie un bloc cible à ce ISource bloc.

virtual void link_target(_Inout_ ITarget<T>* _PTarget) = 0;

Paramètres

_PTarget
Pointeur vers le bloc cible lié à ce ISource bloc.

release

En cas de substitution dans une classe dérivée, libère une réservation de message réussie précédente.

virtual void release(
    runtime_object_identity _MsgId,
    _Inout_ ITarget<T>* _PTarget) = 0;

Paramètres

_MsgId
Objet runtime_object_identity réservé message .

_PTarget
Pointeur vers le bloc cible appelant la release méthode.

release_ref

En cas de substitution dans une classe dérivée, libère un nombre de références sur ce ISource bloc.

virtual void release_ref(_Inout_ ITarget<T>* _PTarget) = 0;

Paramètres

_PTarget
Pointeur vers le bloc cible qui appelle cette méthode.

Notes

Cette méthode est appelée par un ITarget objet qui n’est pas dissocié de cette source. Le bloc source est autorisé à libérer toutes les ressources réservées au bloc cible.

reserve

En cas de substitution dans une classe dérivée, réserve un message précédemment proposé par ce ISource bloc.

virtual bool reserve(
    runtime_object_identity _MsgId,
    _Inout_ ITarget<T>* _PTarget) = 0;

Paramètres

_MsgId
Objet runtime_object_identity proposé message .

_PTarget
Pointeur vers le bloc cible appelant la reserve méthode.

Valeur de retour

true si le message a été correctement réservé, false sinon. Les réservations peuvent échouer pour de nombreuses raisons, notamment : le message a déjà été réservé ou accepté par une autre cible, la source peut refuser les réservations, etc.

Notes

Une fois l’appel reserveeffectué, s’il réussit, vous devez appeler l’un consumerelease ou l’autre pour prendre ou abandonner la possession du message, respectivement.

En cas de substitution dans une classe dérivée, dissocie un bloc cible de ce ISource bloc, s’il est trouvé précédemment lié.

virtual void unlink_target(_Inout_ ITarget<T>* _PTarget) = 0;

Paramètres

_PTarget
Pointeur vers le bloc cible dissocié de ce ISource bloc.

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

virtual void unlink_targets() = 0;

Voir aussi

accès concurrentiel Namespace
ITarget, classe