propagator_block — Klasa
Klasa propagator_block to abstrakcyjna klasa bazowa dla bloków wiadomości, które są zarówno elementami źródłowymi i docelowymi.Łączy w sobie funkcje klas source_block i target_block.
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
Rejestr łącza używanego do gospodarstwa docelowego łącza._SourceLinkRegistry
Rejestr łącza używanego do gospodarstwa źródła łącza._MessageProcessorType
Typ procesora dla przetwarzania wiadomości.
Elementy członkowskie
Publiczne definicje typów
Nazwa |
Opis |
---|---|
source_iterator |
Typ iteratora dla source_link_manager tego propagator_block. |
Konstruktory publiczne
Nazwa |
Opis |
---|---|
Buduje propagator_block obiektu. |
|
Niszczy propagator_block obiektu. |
Metody publiczne
Nazwa |
Opis |
---|---|
Asynchronicznie przekazuje wiadomość z bloku źródłowego do tego bloku docelowego. |
|
Inicjuje synchronicznie wiadomość do tego bloku.Wywoływana przez ISource bloku.Po zakończeniu tej funkcji wiadomości już zostały propagowane do bloku. |
Metody chronione
Nazwa |
Opis |
---|---|
Wskazuje, do bloku nowe wiadomości powinny zostać odrzucona. |
|
Inicjuje obiekt podstawowy.W szczególności message_processor obiekt musi zostać zainicjowany. |
|
Łącza do tego bloku źródłowego określonego propagator_block obiektu. |
|
Przetwarzanie komunikatów wejściowych.Ta opcja jest przydatna dla propagator bloków, które wynikają z source_block (zastępuje source_block::process_input_messages.) |
|
Po zastąpieniu w klasie pochodnej, ta metoda asynchronicznie przekazuje wiadomość od ISource bloku do tego propagator_block obiektu.Jest ono wywoływane przez propagate metodę, gdy wywoływany przez bloku źródłowego. |
|
Rejestruje metodę filtr, który zostanie wywołany, na każdego odebranego komunikatu. |
|
Usuwa wszystkie źródłowej i docelowej sieci łącza z tego propagator_block obiektu. |
|
Po zastąpieniu w klasie pochodnej, ta metoda synchronicznego przekazuje wiadomość od ISource bloku do tego propagator_block obiektu.Jest ono wywoływane przez send metodę, gdy wywoływany przez bloku źródłowego. |
|
Rozłącza z tego bloku określonego źródła propagator_block obiektu. |
|
Wstrzymuje wszystkie bloki źródła z tego propagator_block obiektu. (Zastępuje ITarget::unlink_sources.) |
Uwagi
Aby uniknąć wielokrotnego dziedziczenia, propagator_block klasa dziedziczy z source_block klasy i ITarget klasy abstrakcyjnej.Większość funkcjonalności w target_block klasy są replikowane w tym miejscu.
Hierarchia dziedziczenia
propagator_block
Wymagania
Nagłówek: agents.h
Przestrzeń nazw: concurrency