Třída timer

timer Blok pro zasílání zpráv s jediným cílem je schopen odeslat zprávu do svého cíle po uplynutí zadaného časového intervalu nebo v určitých intervalech.

Syntaxe

template<class T>
class timer : public Concurrency::details::_Timer, public source_block<single_link_registry<ITarget<T>>>;

Parametry

T
Typ datové části výstupních zpráv tohoto bloku.

Členové

Veřejné konstruktory

Název Popis
časovač Přetíženo. timer Vytvoří blok zasílání zpráv, který po zadaném intervalu aktivuje danou zprávu.
~časovač – destruktor Zničí timer blok zasílání zpráv.

Veřejné metody

Název Popis
pauza Zastaví blok timer pro zasílání zpráv. Pokud se jedná o blok opakující se zasílání zpráv timer, můžete ho restartovat dalším start() voláním. U neopakujících časovačů to má stejný účinek jako stop volání.
start Spustí blok zasílání zpráv timer. Po uplynutí zadaného počtu milisekund od tohoto zavolání se zadaná hodnota propaguje dále jako message.
Stop Zastaví blok timer pro zasílání zpráv.

Chráněné metody

Název Popis
přijmout_zprávu Přijme zprávu, kterou tento timer blok zasílání zpráv nabízí, a přenese vlastnictví volajícímu.
consume_message Spotřebovává zprávu, která byla dříve nabídnuta timer a rezervována cílem, a převádí vlastnictví na volajícího.
oznámení_o_cíli_odkazu Funkce zpětného volání, která upozorní na propojení nového cíle s tímto timer blokem zasílání zpráv.
šířit_na_jakékoliv_cíle Snaží se nabídnout zprávu vytvořenou timer blokem všem propojeným cílům.
release_message Uvolní předchozí rezervaci zpráv. (Přepisuje source_block::release_message.)
rezervační_zpráva Zarezervuje dříve nabízenou zprávu v tomto timer bloku zasílání zpráv. (Přepisuje source_block::reserve_message.)
resume_propagation Po uvolnění rezervace se obnoví šíření. (Přepsání source_block::resume_propagation.)

Poznámky

Další informace naleznete v tématu Asynchronní bloky zpráv.

Hierarchie dědičnosti

ISource

source_block

timer

Požadavky

Hlavička: agents.h

Obor názvů: souběžnost

přijmout_zprávu

Přijme zprávu, kterou tento timer blok zasílání zpráv nabízí, a přenese vlastnictví volajícímu.

virtual message<T>* accept_message(runtime_object_identity _MsgId);

Parametry

_MsgId
runtime_object_identity Nabízený message objekt.

Návratová hodnota

Ukazatel na message objekt, ke kterému má volající nyní vlastnictví.

zpracovat_zprávu

Spotřebovává zprávu, která byla dříve nabídnuta timer a rezervována cílem, a převádí vlastnictví na volajícího.

virtual message<T>* consume_message(runtime_object_identity _MsgId);

Parametry

_MsgId
runtime_object_identity objektu message, který je spotřebováván.

Návratová hodnota

Ukazatel na message objekt, ke kterému má volající nyní vlastnictví.

Poznámky

Podobá se accept, ale vždy mu předchází volání reserve.

Funkce zpětného volání, která upozorní na propojení nového cíle s tímto timer blokem zasílání zpráv.

virtual void link_target_notification(_Inout_ ITarget<T>* _PTarget);

Parametry

_PTarget
Ukazatel na nově propojený cíl.

pozastavit

Zastaví blok timer pro zasílání zpráv. Pokud se jedná o blok opakující se zasílání zpráv timer, můžete ho restartovat dalším start() voláním. U neopakujících časovačů to má stejný účinek jako stop volání.

void pause();

šířit na všechny cíle

Snaží se nabídnout zprávu vytvořenou timer blokem všem propojeným cílům.

virtual void propagate_to_any_targets(_Inout_opt_ message<T> *);

zpráva o vydání

Uvolní předchozí rezervaci zpráv.

virtual void release_message(runtime_object_identity _MsgId);

Parametry

_MsgId
Uvolnění runtime_object_identity objektu message .

rezervovat_zprávu

Zarezervuje dříve nabízenou zprávu v tomto timer bloku zasílání zpráv.

virtual bool reserve_message(runtime_object_identity _MsgId);

Parametry

_MsgId
Objekt message, který je rezervován pro runtime_object_identity.

Návratová hodnota

true pokud byla zpráva úspěšně rezervována, jinak false.

Poznámky

Po zavolání reserve, pokud se vrátí true, musí být buď consume nebo release zavolána, aby došlo k převzetí nebo uvolnění vlastnictví zprávy.

resume_propagation

Po uvolnění rezervace se obnoví šíření.

virtual void resume_propagation();

spustit

Spustí blok zasílání zpráv timer. Po uplynutí zadaného počtu milisekund od tohoto zavolání se zadaná hodnota propaguje dále jako message.

void start();

Zastavit

Zastaví blok timer pro zasílání zpráv.

void stop();

časovač

timer Vytvoří blok zasílání zpráv, který po zadaném intervalu aktivuje danou zprávu.

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

Parametry

_Ms
Počet milisekund, které musí uplynout po volání, aby se zadaná zpráva šířila do podřízené oblasti.

value
Hodnota, která bude předána po proudu po uplynutí časovače.

_PTarget
Cíl, na který časovač rozšíří zprávu.

_Opakování
Pokud je hodnota pravda, znamená to, že časovač se bude pravidelně spouštět každých _Ms milisekund.

_Plánovač
Objekt Scheduler, ve kterém je naplánována úloha pro blok timer zasílání zpráv, je určen pro naplánování šíření.

_ScheduleGroup
Objekt ScheduleGroup , ve kterém je naplánována úloha šíření bloku timer zasílání zpráv. Použití Scheduler objektu je dané skupinou plánů.

Poznámky

Modul runtime používá výchozí plánovač, pokud nezadáte buď parametr _Scheduler nebo parametr _ScheduleGroup.

~časovač

Zničí timer blok zasílání zpráv.

~timer();

Viz také

concurrency – obor názvů