ISource Sınıfı

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

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.

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.

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;

Ayrıca bkz.

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