Classe timer
Un bloc de messagerie timer
est un source_block
à cible unique, capable d'envoyer un message à sa cible après un délai spécifié ou à intervalles spécifiques.
Syntaxe
template<class T>
class timer : public Concurrency::details::_Timer, public source_block<single_link_registry<ITarget<T>>>;
Paramètres
T
Type de charge utile des messages de sortie de ce bloc.
Membres
Constructeurs publics
Nom | Description |
---|---|
timer | Surcharge. Construit un timer bloc de messagerie qui déclenche un message donné après un intervalle spécifié. |
~ Destructeur du minuteur | Détruit un timer bloc de messagerie. |
Méthodes publiques
Nom | Description |
---|---|
pause | Arrête le timer bloc de messagerie. S’il s’agit d’un bloc de messagerie répétitif timer , il peut être redémarré avec un appel ultérieur start() . Pour les minuteurs non répétitifs, cela a le même effet qu’un stop appel. |
start | Démarre le timer bloc de messagerie. Le nombre spécifié de millisecondes après cet appel, la valeur spécifiée est propagée en aval en tant que message . |
stop | Arrête le timer bloc de messagerie. |
Méthodes protégées
Nom | Description |
---|---|
accept_message | Accepte un message proposé par ce timer bloc de messagerie, en transférant la propriété à l’appelant. |
consume_message | Consomme un message précédemment proposé par la timer cible et réservé par la cible, en transférant la propriété à l’appelant. |
link_target_notification | Rappel qui informe qu’une nouvelle cible a été liée à ce timer bloc de messagerie. |
propagate_to_any_targets | Tente d’offrir le message généré par le timer bloc à toutes les cibles liées. |
release_message | Libère une réservation de message précédente. (Remplace source_block ::release_message.) |
reserve_message | Réserve un message précédemment proposé par ce timer bloc de messagerie. (Remplace source_block ::reserve_message.) |
resume_propagation | Reprend la propagation après la publication d’une réservation. (Remplace source_block ::resume_propagation.) |
Notes
Pour plus d’informations, consultez Blocs de messages asynchrones.
Hiérarchie d'héritage
timer
Spécifications
En-tête : agents.h
Espace de noms : concurrency
accept_message
Accepte un message proposé par ce timer
bloc de messagerie, en transférant la propriété à l’appelant.
virtual message<T>* accept_message(runtime_object_identity _MsgId);
Paramètres
_MsgId
Objet runtime_object_identity
proposé message
.
Valeur de retour
Pointeur vers l’objet message
dont l’appelant a désormais la propriété.
consume_message
Consomme un message précédemment proposé par la timer
cible et réservé par la cible, en transférant la propriété à l’appelant.
virtual message<T>* consume_message(runtime_object_identity _MsgId);
Paramètres
_MsgId
De runtime_object_identity
l’objet message
consommé.
Valeur de retour
Pointeur vers l’objet message
dont l’appelant a désormais la propriété.
Notes
Similaire à accept
, mais est toujours précédé d’un appel à reserve
.
link_target_notification
Rappel qui informe qu’une nouvelle cible a été liée à ce timer
bloc de messagerie.
virtual void link_target_notification(_Inout_ ITarget<T>* _PTarget);
Paramètres
_PTarget
Pointeur vers la cible nouvellement liée.
pause
Arrête le timer
bloc de messagerie. S’il s’agit d’un bloc de messagerie répétitif timer
, il peut être redémarré avec un appel ultérieur start()
. Pour les minuteurs non répétitifs, cela a le même effet qu’un stop
appel.
void pause();
propagate_to_any_targets
Tente d’offrir le message généré par le timer
bloc à toutes les cibles liées.
virtual void propagate_to_any_targets(_Inout_opt_ message<T> *);
release_message
Libère une réservation de message précédente.
virtual void release_message(runtime_object_identity _MsgId);
Paramètres
_MsgId
De runtime_object_identity
l’objet message
libéré.
reserve_message
Réserve un message précédemment proposé par ce timer
bloc de messagerie.
virtual bool reserve_message(runtime_object_identity _MsgId);
Paramètres
_MsgId
De runtime_object_identity
l’objet message
réservé.
Valeur de retour
true
si le message a été correctement réservé, false
sinon.
Notes
Une fois reserve
appelé, s’il retourne true
, soit release
consume
doit être appelé pour prendre ou libérer la propriété du message.
resume_propagation
Reprend la propagation après la publication d’une réservation.
virtual void resume_propagation();
start
Démarre le timer
bloc de messagerie. Le nombre spécifié de millisecondes après cet appel, la valeur spécifiée est propagée en aval en tant que message
.
void start();
stop
Arrête le timer
bloc de messagerie.
void stop();
timer
Construit un timer
bloc de messagerie qui déclenche un message donné après un intervalle spécifié.
timer(
unsigned int _Ms,
T const& value,
ITarget<T>* _PTarget = NULL,
bool _Repeating = false);
timer(
Scheduler& _Scheduler,
unsigned int _Ms,
T const& value,
_Inout_opt_ ITarget<T>* _PTarget = NULL,
bool _Repeating = false);
timer(
ScheduleGroup& _ScheduleGroup,
unsigned int _Ms,
T const& value,
_Inout_opt_ ITarget<T>* _PTarget = NULL,
bool _Repeating = false);
Paramètres
_Ms
Nombre de millisecondes qui doivent s’écouler après le début de l’appel pour que le message spécifié soit propagé en aval.
valeur
Valeur qui sera propagée en aval lorsque le minuteur s’écoule.
_PTarget
Cible à laquelle le minuteur propage son message.
_Répétitif
Si la valeur est true, indique que le minuteur se déclenche régulièrement toutes les _Ms
millisecondes.
_Programmateur
Objet Scheduler
dans lequel la tâche de propagation du timer
bloc de messagerie est planifiée.
_ScheduleGroup
Objet ScheduleGroup
dans lequel la tâche de propagation du bloc de messagerie timer
est planifiée. L’objet Scheduler
utilisé est suggéré par le groupe de planification.
Notes
Le runtime utilise le planificateur par défaut si vous ne spécifiez pas les paramètres _Scheduler
ou _ScheduleGroup
.
~minuteur
Détruit un timer
bloc de messagerie.
~timer();