Aracılığıyla paylaş


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

ITarget

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.

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

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.

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.

Ayrıca bkz.

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