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.
ISource sınıfı, tüm kaynak bloklar için arabirimdir. İletileri kaynak bloklar ITarget bloklara yayar.
Sözdizimi
template<class T>
class ISource;
Parametreler
T
Kaynak bloğu tarafından oluşturulan iletilerde yükün veri türü.
Üyeler
Genel Tür Tanımları
| Veri Akışı Adı | Açıklama |
|---|---|
source_type |
T için bir tür takma ad. |
Ortak Oluşturucular
| Veri Akışı Adı | Açıklama |
|---|---|
| ~ISource Destructor |
ISource nesnesini yok eder. |
Genel Yöntemler
| Veri Akışı Adı | Açıklama |
|---|---|
| kabul etmek | Türetilmiş bir sınıfta geçersiz kılındığında, bu ISource blok tarafından sunulan bir iletiyi kabul eder ve sahipliği çağırana aktarır. |
| acquire_ref | Türetilmiş sınıfta geçersiz kılındığında, silmeyi önlemek için bu ISource blokta bir referans sayısı oluşturur. |
| tüketmek | Türetilmiş bir sınıfta geçersiz kılındığında, daha önce bu ISource blok tarafından sunulan ve hedef tarafından başarıyla ayrılmış bir iletiyi kullanır ve kontrolü çağırana aktarır. |
| link_target | Türetilmiş bir sınıfta geçersiz kılındığında, bir hedef bloğu bu ISource bloğa bağlar. |
| yayın | Türetilmiş bir sınıfta geçersiz kılındığında, önceki başarılı bir mesaj rezervasyonunu serbest bırakır. |
| release_ref | Türetilmiş bir sınıfta geçersiz kılındığında, bu ISource bloktaki bir başvuru sayısını serbest bırakır. |
| rezerve etmek | Türetilmiş bir sınıfta geçersiz kılındığında, bu ISource blok tarafından daha önce teklif edilen bir iletiyi yedekler. |
| unlink_target | Türetilmiş bir sınıfta geçersiz kılındığında, daha önce bağlı olduğu tespit edilirse bu ISource bloktaki bir hedef bloğun bağlantısını kaldırır. |
| unlink_targets | Türetilmiş bir sınıfta geçersiz kılındığında, tüm hedef blokların bu ISource bloktaki bağlantılarını keser. |
Açıklamalar
Daha fazla bilgi için bkz. Zaman Uyumsuz İleti Blokları.
Devralma Hiyerarşisi
ISource
Gereksinimler
Üst bilgi: agents.h
Ad alanı: eşzamanlılık
kabul et
Türetilmiş bir sınıfta geçersiz kılındığında, bu ISource bloğu tarafından sunulan mesajı kabul eder ve sahipliğini çağırıcıya aktarır.
virtual message<T>* accept(
runtime_object_identity _MsgId,
_Inout_ ITarget<T>* _PTarget) = 0;
Parametreler
_MsgId
Sunulan message nesnesinin runtime_object_identity.
_PTarget
hedef bloğun accept yöntemini çağıran bir işaretçisi.
Dönüş Değeri
Çağıranın artık sahip olduğu bir mesajın işaretçisi.
Açıklamalar
Bir ileti bu accept blok tarafından sunulurken, ISource yöntemi bir hedef tarafından çağrılır. Döndürülen ileti işaretçisi, bu kaynak iletinin bir kopyasını yapmaya karar verirse, bloğun ITarget yöntemine geçirilen ileti işaretçisinden farklı olabilir.
acquire_ref
Türetilmiş sınıfta geçersiz kılındığında, silmeyi önlemek için bu ISource blokta bir referans sayısı oluşturur.
virtual void acquire_ref(_Inout_ ITarget<T>* _PTarget) = 0;
Parametreler
_PTarget
Bu yöntemi çağıran hedef bloğun işaretçisi.
Açıklamalar
Bu yöntem, link_target yöntemi sırasında bu kaynağa bağlı olan bir ITarget nesne tarafından çağrılır.
tüketmek
Türetilmiş bir sınıfta geçersiz kılındığında, daha önce bu ISource blok tarafından sunulan ve hedef tarafından başarıyla ayrılmış bir iletiyi kullanır ve kontrolü çağırana aktarır.
virtual message<T>* consume(
runtime_object_identity _MsgId,
_Inout_ ITarget<T>* _PTarget) = 0;
Parametreler
_MsgId
runtime_object_identity Ayrılmış message nesnenin öğesi.
_PTarget
hedef bloğun consume yöntemini çağıran bir işaretçisi.
Dönüş Değeri
Çağıranın artık sahip olduğu message nesnesine ait bir işaretçi.
Açıklamalar
consume yöntemi accept yöntemine benzer, ancak her zaman true döndüren reserve çağrısından sonra gelmelidir.
~ISource
ISource nesnesini yok eder.
virtual ~ISource();
link_target
Türetilmiş bir sınıfta geçersiz kılındığında, bir hedef bloğu bu ISource bloğa bağlar.
virtual void link_target(_Inout_ ITarget<T>* _PTarget) = 0;
Parametreler
_PTarget
Bu ISource bloğa bağlanmış olan hedef bloğa işaret eden bir işaretçi.
serbest bırakma
Türetilmiş bir sınıfta geçersiz kılındığında, önceki başarılı bir mesaj rezervasyonunu serbest bırakır.
virtual void release(
runtime_object_identity _MsgId,
_Inout_ ITarget<T>* _PTarget) = 0;
Parametreler
_MsgId
runtime_object_identity Ayrılmış message nesnenin öğesi.
_PTarget
hedef bloğun release yöntemini çağıran bir işaretçisi.
release_ref
Türetilmiş bir sınıfta geçersiz kılındığında, bu ISource bloktaki bir başvuru sayısını serbest bırakır.
virtual void release_ref(_Inout_ ITarget<T>* _PTarget) = 0;
Parametreler
_PTarget
Bu yöntemi çağıran hedef bloğun işaretçisi.
Açıklamalar
Bu yöntem, bu kaynaktan bağlantısı kaldırılan bir ITarget nesne tarafından çağrılır. Kaynak bloğunun hedef blok için ayrılmış tüm kaynakları serbest bırakmasına izin verilir.
ayırmak
Türetilmiş bir sınıfta geçersiz kılındığında, bu ISource blok tarafından daha önce teklif edilen bir iletiyi yedekler.
virtual bool reserve(
runtime_object_identity _MsgId,
_Inout_ ITarget<T>* _PTarget) = 0;
Parametreler
_MsgId
Sunulan message nesnesinin runtime_object_identity.
_PTarget
hedef bloğun reserve yöntemini çağıran bir işaretçisi.
Dönüş Değeri
true ileti başarıyla rezerve edildiyse, false aksi takdirde. Rezervasyonlar birçok nedenden dolayı başarısız olabilir. Bu nedenler arasında: mesajın zaten ayrılmış olması veya başka bir hedef tarafından kabul edilmesi, kaynağın rezervasyonları reddedebilmesi gibi durumlar yer alır.
Açıklamalar
reserve’yı çağırdıktan sonra, başarılı olursa, mesajın sahipliğini almak için consume veya vazgeçmek için release çağrısını yapmanız gerekir.
hedefi_bağlantıdan_ayır
Türetilmiş bir sınıfta geçersiz kılındığında, daha önce bağlı olduğu tespit edilirse bu ISource bloktaki bir hedef bloğun bağlantısını kaldırır.
virtual void unlink_target(_Inout_ ITarget<T>* _PTarget) = 0;
Parametreler
_PTarget
Bu ISource blokla bağlantısı kaldırılan hedef bloğun işaretçisi.
unlink_targets
Türetilmiş bir sınıfta geçersiz kılındığında, tüm hedef blokların bu ISource bloktaki bağlantılarını keser.
virtual void unlink_targets() = 0;