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 propagator_block je abstraktní základní třída pro bloky zpráv, které jsou zdrojem i cílem. Kombinuje funkce obou tříd source_block i target_block tříd.
Syntaxe
template<class _TargetLinkRegistry, class _SourceLinkRegistry, class _MessageProcessorType = ordered_message_processor<typename _TargetLinkRegistry::type::type>>
class propagator_block : public source_block<_TargetLinkRegistry,
_MessageProcessorType>,
public ITarget<typename _SourceLinkRegistry::type::source_type>;
Parametry
_TargetLinkRegistry
Registr propojení, který se má použít k uchovávání cílových propojení.
_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 propagator_blocktyp . |
Veřejné konstruktory
| Název | Popis |
|---|---|
| propagator_block | propagator_block Vytvoří objekt. |
| ~propagator_block Destruktor | propagator_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ě inicializuje zprávu k tomuto bloku. Volá se blokem ISource . Po dokončení této funkce se zpráva již rozšíří do bloku. |
Chráněné metody
| Název | Popis |
|---|---|
| decline_incoming_messages | Označuje blok, že nové zprávy by měly být odmítnuty. |
| initialize_source_and_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 propagator_block objektem. |
| process_input_messages | Zpracování vstupních zpráv To je užitečné pouze pro bloky šíření, které jsou odvozeny od source_block (přepsání source_block::p rocess_input_messages.) |
| propagate_message | Při přepsání v odvozené třídě tato metoda asynchronně předává zprávu z ISource bloku do tohoto propagator_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_network_links | Odebere z tohoto propagator_block objektu všechna zdrojová a cílová síťová propojení. |
| send_message | Při přepsání v odvozené třídě tato metoda synchronně předává zprávu z ISource bloku do tohoto propagator_block objektu. Vyvolá se metodou send při zavolání zdrojovým blokem. |
| unlink_source | Zruší propojení zadaného zdrojového bloku s tímto propagator_block objektem. |
| unlink_sources | Zruší propojení všech zdrojových bloků z tohoto propagator_block objektu. (Přepsání ITarget::unlink_sources.) |
Poznámky
Aby nedocházelo k vícenásobné dědičnosti, propagator_block třída dědí z source_block třídy a ITarget abstraktní třídy. Většina funkcí ve target_block třídě se tady replikuje.
Hierarchie dědičnosti
propagator_block
Požadavky
Hlavička: agents.h
Obor názvů: souběžnost
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í.
initialize_source_and_target
Inicializuje základní objekt. message_processor Konkrétně je potřeba inicializovat objekt.
void initialize_source_and_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 propagator_block objektem.
virtual void link_source(_Inout_ ISource<_Source_type>* _PSource);
Parametry
_PSource
Ukazatel na ISource blok, který se má propojit.
process_input_messages
Zpracování vstupních zpráv To je užitečné pouze pro bloky šíření, které jsou odvozeny z source_block
virtual void process_input_messages(_Inout_ message<_Target_type>* _PMessage);
Parametry
_PMessage
Ukazatel na zprávu, která se má zpracovat.
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 propagate je vyvolána v cílovém bloku propojeným zdrojovým blokem. Zařadí do fronty asynchronní úlohu pro zpracování zprávy, pokud ještě není zařazena do fronty nebo spuštěna.
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 propagator_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.
propagator_block
propagator_block Vytvoří objekt.
propagator_block();
~propagator_block
propagator_block Zničí objekt.
virtual ~propagator_block();
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_network_links
Odebere z tohoto propagator_block objektu všechna zdrojová a cílová síťová propojení.
void remove_network_links();
poslat
Synchronně inicializuje zprávu k tomuto bloku. Volá se blokem ISource . Po dokončení této funkce se zpráva již rozšíří do 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
Tato metoda vyvolá invalid_argument výjimku, pokud _PMessage je nebo _PSource parametr .NULL
send_message
Při přepsání v odvozené třídě tato metoda synchronně předává zprávu z ISource bloku do tohoto propagator_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.
unlink_source
Zruší propojení zadaného zdrojového bloku s tímto propagator_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 propagator_block objektu.
virtual void unlink_sources();
Viz také
concurrency – obor názvů
source_block – třída
ITarget – třída