Aracılığıyla paylaş


propagator_block Sınıfı

propagator_block sınıfı, hem kaynak hem de hedef olan ileti blokları için soyut bir temel sınıftır. Hem ve source_block target_block sınıflarının işlevselliğini birleştirir.

Sözdizimi

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

Parametreler

_TargetLinkRegistry
Hedef bağlantıları tutmak için kullanılacak bağlantı kayıt defteri.

_SourceLinkRegistry
Kaynak bağlantıları tutmak için kullanılacak bağlantı kayıt defteri.

_MessageProcessorType
İleti işleme için işlemci türü.

Üyeler

Genel Tür Tanımları

Veri Akışı Adı Açıklama
source_iterator Bunun propagator_blockiçin yineleyicinin source_link_manager türü.

Ortak Oluşturucular

Veri Akışı Adı Açıklama
propagator_block Bir propagator_block nesne oluşturur.
~propagator_block Yıkıcı Bir propagator_block nesneyi yok eder.

Genel Yöntemler

Veri Akışı Adı Açıklama
Yay -mak Bir kaynak bloktan gelen iletiyi zaman uyumsuz olarak bu hedef bloğa geçirir.
Gönder Bu bloğa zaman uyumlu olarak bir ileti başlatır. Bir ISource blok tarafından çağrılır. Bu işlev tamamlandığında, ileti bloğuna zaten yayılır.

Korumalı Yöntemler

Veri Akışı Adı Açıklama
decline_incoming_messages Blokta yeni iletilerin reddedilmesi gerektiğini gösterir.
initialize_source_and_target Temel nesneyi başlatır. Özellikle, nesnenin message_processor başlatılması gerekir.
link_source Belirtilen kaynak bloğu bu propagator_block nesneye bağlar.
process_input_messages Giriş iletilerini işleme. Bu yalnızca source_block türetilen yayıcı blokları için yararlıdır (Geçersiz kılmalar source_block::p rocess_input_messages.)
propagate_message Türetilmiş bir sınıfta geçersiz kılındığında, bu yöntem bir bloktaki ISource iletiyi zaman uyumsuz olarak bu propagator_block nesneye geçirir. Bir kaynak bloğu tarafından çağrıldığında yöntemi tarafından propagate çağrılır.
register_filter Alınan her iletide çağrılacak bir filtre yöntemini kaydeder.
remove_network_links Bu propagator_block nesneden tüm kaynak ve hedef ağ bağlantılarını kaldırır.
send_message Türetilmiş bir sınıfta geçersiz kılındığında, bu yöntem bir bloktan bu propagator_block nesneye zaman uyumlu bir şekilde ileti ISource geçirir. Bir kaynak bloğu tarafından çağrıldığında yöntemi tarafından send çağrılır.
unlink_source Belirtilen kaynak bloğun bu propagator_block nesneyle bağlantısını kaldırır.
unlink_sources Bu propagator_block nesnenin tüm kaynak bloklarının bağlantısını kaldırır. (Geçersiz Kılmalar ITarget::unlink_sources.)

Açıklamalar

Birden çok devralmayı önlemek için sınıfı sınıfından propagator_block ve ITarget soyut sınıftan source_block devralır. Sınıfındaki işlevlerin target_block çoğu burada çoğaltılır.

Devralma Hiyerarşisi

ISource

ITarget

source_block

propagator_block

Gereksinimler

Üst bilgi: agents.h

Ad alanı: eşzamanlılık

decline_incoming_messages

Blokta yeni iletilerin reddedilmesi gerektiğini gösterir.

void decline_incoming_messages();

Açıklamalar

Bu yöntem, yok etme işlemi devam ederken yeni iletilerin reddedildiğinden emin olmak için yıkıcı tarafından çağrılır.

initialize_source_and_target

Temel nesneyi başlatır. Özellikle, nesnenin message_processor başlatılması gerekir.

void initialize_source_and_target(
    _Inout_opt_ Scheduler* _PScheduler = NULL,
    _Inout_opt_ ScheduleGroup* _PScheduleGroup = NULL);

Parametreler

_PScheduler
Görevleri zamanlamak için kullanılacak zamanlayıcı.

_PScheduleGroup
Görevleri zamanlamak için kullanılacak zamanlama grubu.

Belirtilen kaynak bloğu bu propagator_block nesneye bağlar.

virtual void link_source(_Inout_ ISource<_Source_type>* _PSource);

Parametreler

_PSource
Bağlanacak bloğun ISource işaretçisi.

process_input_messages

Giriş iletilerini işleme. Bu yalnızca source_block türetilen yayıcı blokları için kullanışlıdır

virtual void process_input_messages(_Inout_ message<_Target_type>* _PMessage);

Parametreler

_PMessage
İşlenecek iletinin işaretçisi.

Yay -mak

Bir kaynak bloktan gelen iletiyi zaman uyumsuz olarak bu hedef bloğa geçirir.

virtual message_status propagate(
    _Inout_opt_ message<_Source_type>* _PMessage,
    _Inout_opt_ ISource<_Source_type>* _PSource);

Parametreler

_PMessage
Nesnenin işaretçisi message .

_PSource
İletiyi sunan kaynak bloğun işaretçisi.

Dönüş Değeri

Hedefin iletiyle ne yapmaya karar verdiklerine ilişkin message_status bir gösterge.

Açıklamalar

propagate yöntemi, bağlı bir kaynak blok tarafından hedef blokta çağrılır. Henüz kuyruğa alınmamış veya yürütülmemişse, iletiyi işlemek için zaman uyumsuz bir görevi kuyruğa alır.

veya parametresi ise yöntemi bir invalid_argument özel durumu oluşturur._PMessage NULL_PSource

propagate_message

Türetilmiş bir sınıfta geçersiz kılındığında, bu yöntem bir bloktaki ISource iletiyi zaman uyumsuz olarak bu propagator_block nesneye geçirir. Bir kaynak bloğu tarafından çağrıldığında yöntemi tarafından propagate çağrılır.

virtual message_status propagate_message(
    _Inout_ message<_Source_type>* _PMessage,
    _Inout_ ISource<_Source_type>* _PSource) = 0;

Parametreler

_PMessage
Nesnenin işaretçisi message .

_PSource
İletiyi sunan kaynak bloğun işaretçisi.

Dönüş Değeri

Hedefin iletiyle ne yapmaya karar verdiklerine ilişkin message_status bir gösterge.

propagator_block

Bir propagator_block nesne oluşturur.

propagator_block();

~propagator_block

Bir propagator_block nesneyi yok eder.

virtual ~propagator_block();

register_filter

Alınan her iletide çağrılacak bir filtre yöntemini kaydeder.

void register_filter(filter_method const& _Filter);

Parametreler

_Filtre
Filtre yöntemi.

Bu propagator_block nesneden tüm kaynak ve hedef ağ bağlantılarını kaldırır.

void remove_network_links();

Gönder

Bu bloğa zaman uyumlu olarak bir ileti başlatır. Bir ISource blok tarafından çağrılır. Bu işlev tamamlandığında, ileti bloğuna zaten yayılır.

virtual message_status send(
    _Inout_ message<_Source_type>* _PMessage,
    _Inout_ ISource<_Source_type>* _PSource);

Parametreler

_PMessage
Nesnenin işaretçisi message .

_PSource
İletiyi sunan kaynak bloğun işaretçisi.

Dönüş Değeri

Hedefin iletiyle ne yapmaya karar verdiklerine ilişkin message_status bir gösterge.

Açıklamalar

Bu yöntem, veya _PSource parametresi NULLise _PMessage invalid_argument bir özel durum oluşturur.

send_message

Türetilmiş bir sınıfta geçersiz kılındığında, bu yöntem bir bloktan bu propagator_block nesneye zaman uyumlu bir şekilde ileti ISource geçirir. Bir kaynak bloğu tarafından çağrıldığında yöntemi tarafından send çağrılır.

virtual message_status send_message(
    _Inout_ message<_Source_type> *,
    _Inout_ ISource<_Source_type> *);

Dönüş Değeri

Hedefin iletiyle ne yapmaya karar verdiklerine ilişkin message_status bir gösterge.

Açıklamalar

Varsayılan olarak, türetilmiş bir sınıf tarafından geçersiz kılınmadığı sürece bu blok döndürülüyor declined .

Belirtilen kaynak bloğun bu propagator_block nesneyle bağlantısını kaldırır.

virtual void unlink_source(_Inout_ ISource<_Source_type>* _PSource);

Parametreler

_PSource
Bağlantısının ISource kaldırılacağı bloğun işaretçisi.

Bu propagator_block nesnenin tüm kaynak bloklarının bağlantısını kaldırır.

virtual void unlink_sources();

Ayrıca bkz.

Eşzamanlılık Ad Alanı
source_block Sınıfı
ITarget Sınıfı