Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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.