target_block Sınıfı
target_block
sınıfı, temel bağlantı yönetimi işlevselliği ve yalnızca hedef bloklar için hata denetimi sağlayan soyut bir temel sınıftır.
Sözdizimi
template<class _SourceLinkRegistry, class _MessageProcessorType = ordered_message_processor<typename _SourceLinkRegistry::type::source_type>>
class target_block : public ITarget<typename _SourceLinkRegistry::type::source_type>;
Parametreler
_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 |
Bu target_block nesne için yineleyici türüsource_link_manager . |
Ortak Oluşturucular
Veri Akışı Adı | Açıklama |
---|---|
target_block | Bir target_block nesne oluşturur. |
~target_block Yıkıcı | Nesneyi yok eder target_block . |
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 | Bir kaynak bloktan gelen iletiyi zaman uyumlu bir şekilde bu hedef bloğa geçirir. |
Korumalı Yöntemler
Veri Akışı Adı | Açıklama |
---|---|
async_send | İşlenmek üzere zaman uyumsuz olarak bir ileti gönderir. |
decline_incoming_messages | Blokta yeni iletilerin reddedilmesi gerektiğini gösterir. |
enable_batched_processing | Bu blok için toplu işlemeyi etkinleştirir. |
initialize_target | Temel nesneyi başlatır. Özellikle, nesnenin message_processor başlatılması gerekir. |
link_source | Belirtilen kaynak bloğu bu target_block nesneye bağlar. |
process_input_messages | Giriş olarak alınan iletileri işler. |
process_message | Türetilmiş bir sınıfta geçersiz kılındığında, bu target_block nesne tarafından kabul edilen bir iletiyi işler. |
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 target_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_sources | Bekleyen zaman uyumsuz gönderme işlemlerinin tamamlanmasını bekledikten sonra tüm kaynakların bağlantılarını kaldırıyor. |
send_message | Türetilmiş bir sınıfta geçersiz kılındığında, bu yöntem bir bloktan bu target_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. |
sync_send | İşlenmek üzere zaman uyumlu olarak bir ileti gönderin. |
unlink_source | Belirtilen kaynak bloğun bu target_block nesneyle bağlantısını kaldırır. |
unlink_sources | Bu target_block nesnenin tüm kaynak bloklarının bağlantısını kaldırır. (Geçersiz Kılmalar ITarget::unlink_sources.) |
wait_for_async_sends | Tüm zaman uyumsuz yaymaların tamamlanmasını bekler. |
Devralma Hiyerarşisi
target_block
Gereksinimler
Üst bilgi: agents.h
Ad alanı: eşzamanlılık
async_send
İşlenmek üzere zaman uyumsuz olarak bir ileti gönderir.
void async_send(_Inout_opt_ message<_Source_type>* _PMessage);
Parametreler
_PMessage
Gönderilen iletinin işaretçisi.
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.
enable_batched_processing
Bu blok için toplu işlemeyi etkinleştirir.
void enable_batched_processing();
initialize_target
Temel nesneyi başlatır. Özellikle, nesnenin message_processor
başlatılması gerekir.
void initialize_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 target_block
nesneye bağlar.
virtual void link_source(_Inout_ ISource<_Source_type>* _PSource);
Parametreler
_PSource
Bağlanacak bloğun ISource
işaretçisi.
Açıklamalar
Bu işlev doğrudan bir target_block
nesne üzerinde çağrılmamalıdır. Bloklar, ilgili hedefte link_target
yöntemini çağıracak link_source
olan bloklar üzerindeki ISource
yöntemi kullanılarak birbirine bağlanmalıdır.
process_input_messages
Giriş olarak alınan iletileri işler.
virtual void process_input_messages(_Inout_ message<_Source_type>* _PMessage);
Parametreler
_PMessage
İşlenecek iletinin işaretçisi.
process_message
Türetilmiş bir sınıfta geçersiz kılındığında, bu target_block
nesne tarafından kabul edilen bir iletiyi işler.
virtual void process_message(message<_Source_type> *);
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
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 target_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.
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_sources
Bekleyen zaman uyumsuz gönderme işlemlerinin tamamlanmasını bekledikten sonra tüm kaynakların bağlantılarını kaldırıyor.
void remove_sources();
Açıklamalar
Tüm hedef bloklar, yıkıcılarındaki kaynakları kaldırmak için bu yordamı çağırmalıdır.
Gönder
Bir kaynak bloktan gelen iletiyi zaman uyumlu bir şekilde bu hedef bloğa geçirir.
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
veya parametresi ise yöntemi bir invalid_argument özel durumu oluşturur._PMessage
NULL
_PSource
send
İleti başlatma dışında yönteminin kullanılması ve iletilerin bir ağ içinde yayılması tehlikelidir ve kilitlenmeye yol açabilir.
Döndürdüğünde send
, ileti zaten kabul edilmiş ve hedef bloğa aktarılmıştır veya hedef tarafından reddedilmiştir.
send_message
Türetilmiş bir sınıfta geçersiz kılındığında, bu yöntem bir bloktan bu target_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
.
sync_send
İşlenmek üzere zaman uyumlu olarak bir ileti gönderin.
void sync_send(_Inout_opt_ message<_Source_type>* _PMessage);
Parametreler
_PMessage
Gönderilen iletinin işaretçisi.
target_block
Bir target_block
nesne oluşturur.
target_block();
~target_block
Nesneyi yok eder target_block
.
virtual ~target_block();
unlink_source
Belirtilen kaynak bloğun bu target_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 target_block
nesnenin tüm kaynak bloklarının bağlantısını kaldırır.
virtual void unlink_sources();
wait_for_async_sends
Tüm zaman uyumsuz yaymaların tamamlanmasını bekler.
void wait_for_async_sends();
Açıklamalar
Bu yöntem, bloğu yok etmeden önce tüm zaman uyumsuz işlemlerin bitmesi için zaman olduğundan emin olmak için ileti bloğu yıkıcıları tarafından kullanılır.