Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Třída target_block je abstraktní základní třída, která poskytuje základní funkce správy propojení a kontrolu chyb pouze pro cílové bloky.
Syntaxe
template<class _SourceLinkRegistry, class _MessageProcessorType = ordered_message_processor<typename _SourceLinkRegistry::type::source_type>>
class target_block : public ITarget<typename _SourceLinkRegistry::type::source_type>;
Parametry
_SourceLinkRegistry
Registr propojení, který se má použít k uchovávání zdrojových odkazů.
_MessageProcessorType
Typ procesoru pro zpracování zpráv.
Členové
Veřejné definice typedef
| Název | Popis |
|---|---|
source_iterator |
Typ iterátoru pro source_link_manager tento target_block objekt. |
Veřejné konstruktory
| Název | Popis |
|---|---|
| target_block | target_block Vytvoří objekt. |
| ~target_block Destruktor | target_block Zničí objekt. |
Veřejné metody
| Název | Popis |
|---|---|
| propagovat | Asynchronně předává zprávu ze zdrojového bloku do tohoto cílového bloku. |
| poslat | Synchronně předává zprávu ze zdrojového bloku do tohoto cílového bloku. |
Chráněné metody
| Název | Popis |
|---|---|
| async_send | Asynchronně odešle zprávu ke zpracování. |
| decline_incoming_messages | Označuje blok, že nové zprávy by měly být odmítnuty. |
| enable_batched_processing | Povolí dávkové zpracování pro tento blok. |
| initialize_target | Inicializuje základní objekt. message_processor Konkrétně je potřeba inicializovat objekt. |
| link_source | Pro propojení zadaného zdrojového bloku s tímto target_block objektem. |
| process_input_messages | Zpracovává zprávy přijaté jako vstupy. |
| process_message | Při přepsání v odvozené třídě zpracuje zprávu, která byla přijata tímto target_block objektem. |
| propagate_message | Při přepsání v odvozené třídě tato metoda asynchronně předává zprávu z ISource bloku do tohoto target_block objektu. Vyvolá se metodou propagate při zavolání zdrojovým blokem. |
| register_filter | Zaregistruje metodu filtru, která se vyvolá při každé přijaté zprávě. |
| remove_sources | Po čekání na dokončení nevyřízených asynchronních operací odesílání zruší propojení všech zdrojů. |
| send_message | Při přepsání v odvozené třídě tato metoda synchronně předává zprávu z ISource bloku do tohoto target_block objektu. Vyvolá se metodou send při zavolání zdrojovým blokem. |
| sync_send | Synchronně odešle zprávu ke zpracování. |
| unlink_source | Zruší propojení zadaného zdrojového bloku s tímto target_block objektem. |
| unlink_sources | Zruší propojení všech zdrojových bloků z tohoto target_block objektu. (Přepsání ITarget::unlink_sources.) |
| wait_for_async_sends | Čeká na dokončení všech asynchronních šíření. |
Hierarchie dědičnosti
target_block
Požadavky
Hlavička: agents.h
Obor názvů: souběžnost
async_send
Asynchronně odešle zprávu ke zpracování.
void async_send(_Inout_opt_ message<_Source_type>* _PMessage);
Parametry
_PMessage
Ukazatel na odesílanou zprávu.
decline_incoming_messages
Označuje blok, že nové zprávy by měly být odmítnuty.
void decline_incoming_messages();
Poznámky
Tato metoda je volána destruktoru, aby se zajistilo, že nové zprávy budou odmítnuty, zatímco probíhá zničení.
enable_batched_processing
Povolí dávkové zpracování pro tento blok.
void enable_batched_processing();
initialize_target
Inicializuje základní objekt. message_processor Konkrétně je potřeba inicializovat objekt.
void initialize_target(
_Inout_opt_ Scheduler* _PScheduler = NULL,
_Inout_opt_ ScheduleGroup* _PScheduleGroup = NULL);
Parametry
_PScheduler
Plánovač, který se má použít pro plánování úkolů.
_PScheduleGroup
Skupina plánů, která se má použít pro plánování úkolů.
link_source
Pro propojení zadaného zdrojového bloku s tímto target_block objektem.
virtual void link_source(_Inout_ ISource<_Source_type>* _PSource);
Parametry
_PSource
Ukazatel na ISource blok, který se má propojit.
Poznámky
Tato funkce by neměla být volána přímo u objektu target_block . Bloky by měly být propojeny pomocí link_target metody na ISource blocích, které vyvolá metodu link_source pro odpovídající cíl.
process_input_messages
Zpracovává zprávy přijaté jako vstupy.
virtual void process_input_messages(_Inout_ message<_Source_type>* _PMessage);
Parametry
_PMessage
Ukazatel na zprávu, která se má zpracovat.
process_message
Při přepsání v odvozené třídě zpracuje zprávu, která byla přijata tímto target_block objektem.
virtual void process_message(message<_Source_type> *);
propagovat
Asynchronně předává zprávu ze zdrojového bloku do tohoto cílového bloku.
virtual message_status propagate(
_Inout_opt_ message<_Source_type>* _PMessage,
_Inout_opt_ ISource<_Source_type>* _PSource);
Parametry
_PMessage
Ukazatel na message objekt.
_PSource
Ukazatel na zdrojový blok nabízející zprávu.
Návratová hodnota
Message_status označení toho, co se cíl rozhodl se zprávou udělat.
Poznámky
Metoda vyvolá invalid_argument výjimku, pokud _PMessage je NULLparametr nebo _PSource .
propagate_message
Při přepsání v odvozené třídě tato metoda asynchronně předává zprávu z ISource bloku do tohoto target_block objektu. Vyvolá se metodou propagate při zavolání zdrojovým blokem.
virtual message_status propagate_message(
_Inout_ message<_Source_type>* _PMessage,
_Inout_ ISource<_Source_type>* _PSource) = 0;
Parametry
_PMessage
Ukazatel na message objekt.
_PSource
Ukazatel na zdrojový blok nabízející zprávu.
Návratová hodnota
Message_status označení toho, co se cíl rozhodl se zprávou udělat.
register_filter
Zaregistruje metodu filtru, která se vyvolá při každé přijaté zprávě.
void register_filter(filter_method const& _Filter);
Parametry
_Filtr
Metoda filtru.
remove_sources
Po čekání na dokončení nevyřízených asynchronních operací odesílání zruší propojení všech zdrojů.
void remove_sources();
Poznámky
Všechny cílové bloky by měly volat tuto rutinu pro odebrání zdrojů v jejich destruktoru.
poslat
Synchronně předává zprávu ze zdrojového bloku do tohoto cílového bloku.
virtual message_status send(
_Inout_ message<_Source_type>* _PMessage,
_Inout_ ISource<_Source_type>* _PSource);
Parametry
_PMessage
Ukazatel na message objekt.
_PSource
Ukazatel na zdrojový blok nabízející zprávu.
Návratová hodnota
Message_status označení toho, co se cíl rozhodl se zprávou udělat.
Poznámky
Metoda vyvolá invalid_argument výjimku, pokud _PMessage je NULLparametr nebo _PSource .
send Použití metody mimo inicializace zpráv a šíření zpráv v síti je nebezpečné a může vést k zablokování.
Když send se vrátí, zpráva již byla přijata a přenesena do cílového bloku nebo byla odmítnuta cílem.
send_message
Při přepsání v odvozené třídě tato metoda synchronně předává zprávu z ISource bloku do tohoto target_block objektu. Vyvolá se metodou send při zavolání zdrojovým blokem.
virtual message_status send_message(
_Inout_ message<_Source_type> *,
_Inout_ ISource<_Source_type> *);
Návratová hodnota
Message_status označení toho, co se cíl rozhodl se zprávou udělat.
Poznámky
Ve výchozím nastavení tento blok vrátí declined , pokud není přepsán odvozenou třídou.
sync_send
Synchronně odešle zprávu ke zpracování.
void sync_send(_Inout_opt_ message<_Source_type>* _PMessage);
Parametry
_PMessage
Ukazatel na odesílanou zprávu.
target_block
target_block Vytvoří objekt.
target_block();
~target_block
target_block Zničí objekt.
virtual ~target_block();
unlink_source
Zruší propojení zadaného zdrojového bloku s tímto target_block objektem.
virtual void unlink_source(_Inout_ ISource<_Source_type>* _PSource);
Parametry
_PSource
Ukazatel na ISource blok, který má být odpojen.
unlink_sources
Zruší propojení všech zdrojových bloků z tohoto target_block objektu.
virtual void unlink_sources();
wait_for_async_sends
Čeká na dokončení všech asynchronních šíření.
void wait_for_async_sends();
Poznámky
Tuto metodu používají destruktory bloku zpráv k zajištění, aby všechny asynchronní operace měly čas dokončit před zničením bloku.