Udostępnij za pośrednictwem


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

propagator_block::propagator_block — Konstruktor

Buduje propagator_block obiektu.

propagator_block::~propagator_block — Destruktor

Niszczy propagator_block obiektu.

Metody publiczne

Nazwa

Opis

propagator_block::propagate — Metoda

Asynchronicznie przekazuje wiadomość z bloku źródłowego do tego bloku docelowego.

propagator_block::send — Metoda

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

propagator_block::decline_incoming_messages — Metoda

Wskazuje, do bloku nowe wiadomości powinny zostać odrzucona.

propagator_block::initialize_source_and_target — Metoda

Inicjuje obiekt podstawowy.W szczególności message_processor obiekt musi zostać zainicjowany.

propagator_block::link_source — Metoda

Łącza do tego bloku źródłowego określonego propagator_block obiektu.

propagator_block::process_input_messages — Metoda

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

propagator_block::propagate_message — Metoda

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.

propagator_block::register_filter — Metoda

Rejestruje metodę filtr, który zostanie wywołany, na każdego odebranego komunikatu.

propagator_block::remove_network_links — Metoda

Usuwa wszystkie źródłowej i docelowej sieci łącza z tego propagator_block obiektu.

propagator_block::send_message — Metoda

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.

propagator_block::unlink_source — Metoda

Rozłącza z tego bloku określonego źródła propagator_block obiektu.

propagator_block::unlink_sources — Metoda

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

ISource

ITarget

source_block

propagator_block

Wymagania

Nagłówek: agents.h

Przestrzeń nazw: concurrency

Zobacz też

Informacje

concurrency — Przestrzeń nazwy

source_block — Klasa

ITarget — Klasa