ITarget Sınıfı

ITarget sınıfı, tüm hedef bloklar için arabirimdir. Hedef bloklar, ISource blokları tarafından kendilerine sunulan iletileri tüketir.

Sözdizimi

template<class T>
class ITarget;

Parametreler

T
Hedef blok tarafından kabul edilen iletilerin içindeki yükün veri türü.

Üyeler

Genel Tür Tanımları

Veri Akışı Adı Açıklama
filter_method Blok tarafından kullanılan, sunulan bir iletinin kabul edilip edilmeyeceğini belirlemek için bir değer döndüren herhangi bir yöntemin imzası.
type T için bir tür takma ad.

Ortak Oluşturucular

Veri Akışı Adı Açıklama
~ITarget Destructor ITarget nesnesini yok eder.

Genel Yöntemler

Veri Akışı Adı Açıklama
Yaymak Türetilmiş bir sınıfta geçersiz kılındığında, bir kaynak bloktaki bir iletiyi eşzamansız olarak bu hedef bloğa geçirir.
Gönder Türetilmiş bir sınıfta geçersiz kılındığında, bir iletiyi hedef bloğa zaman uyumlu bir şekilde geçirir.
supports_anonymous_source Türetilmiş bir sınıfta geçersiz kılındığında, ileti bloğunun ona bağlı olmayan bir kaynak tarafından sunulan iletileri kabul edip etmediğine bağlı olarak true veya false döndürür. Geçersiz kılınan yöntem true döndürürse, ertelenmiş bir iletinin daha sonra tüketilmesi, kaynağın, kaynak bağlantısı kaydında tanımlanmasını gerektirdiğinden, hedef sunulan iletiyi erteleyemez.

Korumalı Yöntemler

Veri Akışı Adı Açıklama
link_source Türetilmiş bir sınıfta geçersiz kılındığında, belirtilen bir kaynak bloğu bu ITarget bloğa bağlar.
unlink_source Türetilmiş bir sınıfta geçersiz kılındığında, belirtilen kaynak bloğun bu ITarget blokla bağlantısını kaldırır.
kaynakları_bağlantısızlaştır Türetilmiş bir sınıfta geçersiz kılındığında, bu ITarget bloktaki tüm kaynak blokların bağlantılarını kaldırır.

Açıklamalar

Daha fazla bilgi için bkz. Zaman Uyumsuz İleti Blokları.

Devralma Hiyerarşisi

ITarget

Gereksinimler

Üst bilgi: agents.h

Ad alanı: eşzamanlılık

~ITarget

ITarget nesnesini yok eder.

virtual ~ITarget();

Türetilmiş bir sınıfta geçersiz kılındığında, belirtilen bir kaynak bloğu bu ITarget bloğa bağlar.

virtual void link_source(_Inout_ ISource<T>* _PSource) = 0;

Parametreler

_PSource
Bu ISource bloğu, bu ITarget bloğa bağlıdır.

Açıklamalar

Bu işlev doğrudan bir ITarget blokta çağrılmamalıdır. Bloklar, ISource blokları üzerindeki link_source yöntemi kullanılarak ve böylece ilgili hedefte link_target yöntemini çağıracak şekilde birbirine bağlanmalıdır.

yaymak

Türetilmiş bir sınıfta geçersiz kılındığında, bir kaynak bloktaki bir iletiyi eşzamansız olarak bu hedef bloğa geçirir.

virtual message_status propagate(
    _Inout_opt_ message<T>* _PMessage,
    _Inout_opt_ ISource<T>* _PSource) = 0;

Parametreler

_PMessage
Bir işaretçi message nesnesine.

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

Dönüş Değeri

Hedefin iletiyle ne yapmaya karar verdiğine ilişkin message_status göstergesi.

Açıklamalar

Parametrelerden ya _PMessage ya da _PSourceNULL ise, yöntem bir invalid_argument özel durumu oluşturur.

Gönder

Türetilmiş bir sınıfta geçersiz kılındığında, bir iletiyi hedef bloğa zaman uyumlu bir şekilde geçirir.

virtual message_status send(
    _Inout_ message<T>* _PMessage,
    _Inout_ ISource<T>* _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 verdiğine dair bir message_status göstergesi.

Açıklamalar

Yöntem, ya _PMessage ya da _PSource parametresi NULL ise bir invalid_argument özel durumu oluşturur.

send İleti başlatma dışında yönteminin kullanılması ve iletilerin bir ağ içinde yayılması tehlikelidir ve kilitlenmeye yol açabilir.

send döndüğünde, ileti ya kabul edilip hedef bloğa aktarılmış ya da hedef tarafından reddedilmiştir.

anonim_kaynağı_destekler

Türetilmiş bir sınıfta geçersiz kılındığında, ileti bloğunun ona bağlı olmayan bir kaynak tarafından sunulan iletileri kabul edip etmediğine bağlı olarak true veya false döndürür. Geçersiz kılınan yöntem true döndürürse, daha sonra ertelenen bir iletinin tüketimi kaynağın bağlantı kayıt defterinde tanımlanmasını gerektirdiğinden hedef, sunulan iletiyi erteleyemez.

virtual bool supports_anonymous_source();

Dönüş Değeri

true blok, kendisiyle bağlantılı olmayan bir kaynaktan gelen iletiyi kabul edebiliyorsa false aksi takdirde.

Türetilmiş bir sınıfta geçersiz kılındığında, belirtilen kaynak bloğun bu ITarget blokla bağlantısını kaldırır.

virtual void unlink_source(_Inout_ ISource<T>* _PSource) = 0;

Parametreler

_PSource
ISource bloğu, bu ITarget bloktan bağlantısı kaldırılıyor.

Açıklamalar

Bu işlev doğrudan bir ITarget blokta çağrılmamalıdır. Blokların, unlink_target veya unlink_targets yöntemlerini kullanarak bağlantıları kesilmelidir. Bu, ilgili hedefte unlink_source yöntemini çağıracaktır.

Türetilmiş bir sınıfta geçersiz kılındığında, bu ITarget bloktaki tüm kaynak blokların bağlantılarını kaldırır.

virtual void unlink_sources() = 0;

Ayrıca bkz.

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