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_block iç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
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.
link_source
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.
remove_network_links
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 NULL
ise _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
.
unlink_source
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.
unlink_sources
Bu propagator_block
nesnenin tüm kaynak bloklarının bağlantısını kaldırır.
virtual void unlink_sources();