Aracılığıyla paylaş


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 Tbir 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 acceptbenzerdir, 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();

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ı reserveyaptıktan sonra, başarılı olursa, sırasıyla iletiyi almak veya release ele geçirmemek için ya da consume aramanı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ı kaldırır.

virtual void unlink_targets() = 0;

Ayrıca bkz.

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