ISource Sınıfı
ISource
sınıfı, tüm kaynak bloklar için arabirimdir. Kaynak bloklar iletileri bloklara yayılım ITarget
.
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 |
için T bir tür diğer adı. |
Ortak Oluşturucular
Veri Akışı Adı | Açıklama |
---|---|
~ISource Yıkıcısı | Nesneyi yok eder ISource . |
Genel Yöntemler
Veri Akışı Adı | Açıklama |
---|---|
almak | 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ş bir sınıfta geçersiz kılındığında, silmeyi önlemek için bu ISource blokta bir başvuru sayısı alı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 ileti kullanır ve sahipliği ç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. |
serbest bırakma | Türetilmiş bir sınıfta geçersiz kılındığında, önceki başarılı bir ileti ayırmayı serbest bırakır. |
release_ref | Türetilmiş bir sınıfta geçersiz kılındığında, bu ISource blokta bir başvuru sayısı serbest bırakır. |
ayırmak | Türetilmiş bir sınıfta geçersiz kılındığında, bu ISource blok tarafından daha önce sunulan bir iletiyi ayırır. |
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ı kaldırır. |
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
blok tarafından sunulan bir iletiyi kabul eder ve sahipliği çağırana aktarır.
virtual message<T>* accept(
runtime_object_identity _MsgId,
_Inout_ ITarget<T>* _PTarget) = 0;
Parametreler
_MsgId
runtime_object_identity
Sunulan message
nesnenin öğesi.
_PTarget
yöntemini çağıran hedef bloğun işaretçisi accept
.
Dönüş Değeri
Çağıranın artık sahip olduğu iletinin işaretçisi.
Açıklamalar
Bu accept
blok tarafından bir ileti sunulurken yöntemi bir hedef tarafından ISource
ç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çirilenden propagate
farklı olabilir.
acquire_ref
Türetilmiş bir sınıfta geçersiz kılındığında, silmeyi önlemek için bu ISource
blokta bir başvuru sayısı alır.
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, yöntemi sırasında bu kaynağa bağlı olan bir ITarget
nesne tarafından çağrılır link_target
.
consume
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 ileti kullanır ve sahipliği ç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
yöntemini çağıran hedef bloğun işaretçisi consume
.
Dönüş Değeri
Çağıranın message
artık sahip olduğu nesnenin işaretçisi.
Açıklamalar
consume
yöntemi ile accept
benzerdir, ancak her zaman döndürülen true
öğesine reserve
yapılan bir çağrıdan önce olmalıdır.
~ISource
Nesneyi yok eder ISource
.
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ğlı olan hedef bloğun işaretçisi.
serbest bırakma
Türetilmiş bir sınıfta geçersiz kılındığında, önceki başarılı bir ileti ayırmayı 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
yöntemini çağıran hedef bloğun işaretçisi release
.
release_ref
Türetilmiş bir sınıfta geçersiz kılındığında, bu ISource
blokta bir başvuru sayısı 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 sunulan bir iletiyi ayırır.
virtual bool reserve(
runtime_object_identity _MsgId,
_Inout_ ITarget<T>* _PTarget) = 0;
Parametreler
_MsgId
runtime_object_identity
Sunulan message
nesnenin öğesi.
_PTarget
yöntemini çağıran hedef bloğun işaretçisi reserve
.
Dönüş Değeri
true
ileti başarıyla ayrılmışsa, false
aksi takdirde. Rezervasyonlar, ileti zaten ayrılmış veya başka bir hedef tarafından kabul edilmiş, kaynak rezervasyonları reddedebilir vb. gibi birçok nedenden dolayı başarısız olabilir.
Açıklamalar
çağrısı reserve
yaptıktan sonra, başarılı olursa, sırasıyla iletiyi almak veya release
ele geçirmemek için ya da consume
aramanız gerekir.
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.
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ı kaldırır.
virtual void unlink_targets() = 0;