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.
Mesajlaşma transformer bloğu, tek türde iletileri kabul edebilen ve farklı türde sınırsız sayıda iletiyi depolayabilen tek hedefli, çok kaynaklı propagator_block bir bloktır.
Sözdizimi
template <class _Input, class _Output>
class transformer : public propagator_block<single_link_registry<ITarget<_Output>>,
multi_link_registry<ISource<_Input>>>;
Parametreler
_Input
Buffer tarafından kabul edilen iletilerin yük tipi.
_Output
Arabellek tarafından depolanan ve yayılan iletilerin yük türü.
Üyeler
Ortak Oluşturucular
| Veri Akışı Adı | Açıklama |
|---|---|
transformer |
Aşırı yüklü Bir transformer mesajlaşma bloğu oluşturur. |
~transformer |
Mesajlaşma bloğunu transformer yok eder. |
Korumalı Yöntemler
| Veri Akışı Adı | Açıklama |
|---|---|
accept_message |
Bu transformer mesajlaşma bloğu tarafından sunulan bir iletiyi kabul eder ve sahipliği arayana aktarır. |
consume_message |
Hedef tarafından ayrılmış ve daha önce transformer tarafından sunulmuş bir iletiyi tüketir ve sahipliğini arayana aktarır. |
link_target_notification |
Bu transformer mesajlaşma bloğuna yeni bir hedefin bağlandığını bildiren geri arama. |
propagate_message |
ISource bloktan gelen bir mesajı zaman uyumsuz olarak bu transformer mesajlaşma bloğuna geçirir.
propagate yöntemi, bir kaynak bloğu tarafından çağrıldığında çalıştırılır. |
propagate_to_any_targets |
Transformatör işlevini giriş iletilerinde yürütür. |
release_message |
Önceki mesaj rezervasyonunu kaldırır. (Geçersiz kılma source_block::release_message.) |
reserve_message |
Daha önce bu transformer mesajlaşma bloğu tarafından sunulan bir iletiyi ayırır. (Geçersiz kılma source_block::reserve_message.) |
resume_propagation |
Rezervasyon serbest bırakıldıktan sonra yayılım yeniden başlar. (Geçersiz kılar source_block::resume_propagation.) |
send_message |
Bir bloktan iletiyi senkronize olarak bu transformer mesajlaşma bloğuna geçirir.
send yöntemi, bir kaynak bloğu tarafından çağrıldığında çalıştırılır. |
supports_anonymous_source |
Bağlı olmayan bir kaynak tarafından sunulan iletileri kabul edebileceğini belirtmek için supports_anonymous_source yöntemini geçersiz kılar. (Geçersiz kılmalar ITarget::supports_anonymous_source.) |
Açıklamalar
Daha fazla bilgi için bkz. Zaman Uyumsuz İleti Blokları.
Devralma Hiyerarşisi
transformer
Gereksinimler
Üst bilgi: agents.h
Ad alanı: eşzamanlılık
accept_message
Bu transformer mesajlaşma bloğu tarafından sunulan bir iletiyi kabul eder ve sahipliği arayana aktarır.
virtual message<_Output>* accept_message(runtime_object_identity _MsgId);
Parametreler
_MsgId
Sunulan message nesnesinin runtime_object_identity.
Dönüş Değeri
Çağıranın artık sahip olduğu message nesnesine ait bir işaretçi.
consume_message
Daha önce transformer tarafından sunulmuş ve hedef tarafından rezerve edilmiş bir iletiyi tüketir ve bunun sahipliğini arayana aktarır.
virtual message<_Output>* consume_message(runtime_object_identity _MsgId);
Parametreler
_MsgId
runtime_object_identity Tüketilen nesnenin message sayısı.
Dönüş Değeri
Çağıranın artık sahip olduğu message nesnesine ait bir işaretçi.
Açıklamalar
Bu, accept'ye benzer, ancak her zaman reserve çağrısından önce gelir.
link_target_notification
Bu transformer mesajlaşma bloğuna yeni bir hedefin bağlandığını bildiren geri arama.
virtual void link_target_notification(_Inout_ ITarget<_Output> *);
propagate_message
ISource bloktan gelen bir mesajı zaman uyumsuz olarak bu transformer mesajlaşma bloğuna geçirir.
propagate yöntemi, bir kaynak bloğu tarafından çağrıldığında çalıştırılır.
virtual message_status propagate_message(
_Inout_ message<_Input>* _PMessage,
_Inout_ ISource<_Input>* _PSource);
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.
propagate_to_any_targets
Transformatör işlevini giriş iletilerinde yürütür.
virtual void propagate_to_any_targets(_Inout_opt_ message<_Output> *);
release_message
Önceki mesaj rezervasyonunu kaldırır.
virtual void release_message(runtime_object_identity _MsgId);
Parametreler
_MsgId
Bırakılan message nesnesinin runtime_object_identity serbest.
reserve_message
Daha önce bu transformer mesajlaşma bloğu tarafından sunulan bir iletiyi ayırır.
virtual bool reserve_message(runtime_object_identity _MsgId);
Parametreler
_MsgId
runtime_object_identity Ayrılan nesnenin message öğesi.
Dönüş Değeri
true ileti başarıyla rezerve edildiyse, false aksi takdirde.
Açıklamalar
reserve çağrıldıktan sonra, eğer true döndürülürse, iletinin sahipliğini almak veya release iletmek için ya consume ya da release çağrılmalıdır.
resume_propagation
Rezervasyon serbest bırakıldıktan sonra yayılım yeniden başlar.
virtual void resume_propagation();
send_message
Bir bloktan iletiyi senkronize olarak bu transformer mesajlaşma bloğuna geçirir.
send yöntemi, bir kaynak bloğu tarafından çağrıldığında çalıştırılır.
virtual message_status send_message(
_Inout_ message<_Input>* _PMessage,
_Inout_ ISource<_Input>* _PSource);
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.
supports_anonymous_source
Bağlı olmayan bir kaynak tarafından sunulan iletileri kabul edebileceğini belirtmek için supports_anonymous_source yöntemini geçersiz kılar.
virtual bool supports_anonymous_source();
Dönüş Değeri
true çünkü blok, sunulan iletileri ertelemez.
transformer
Bir transformer mesajlaşma bloğu oluşturur.
transformer(
_Transform_method const& _Func,
_Inout_opt_ ITarget<_Output>* _PTarget = NULL);
transformer(
_Transform_method const& _Func,
_Inout_opt_ ITarget<_Output>* _PTarget,
filter_method const& _Filter);
transformer(
Scheduler& _PScheduler,
_Transform_method const& _Func,
_Inout_opt_ ITarget<_Output>* _PTarget = NULL);
transformer(
Scheduler& _PScheduler,
_Transform_method const& _Func,
_Inout_opt_ ITarget<_Output>* _PTarget,
filter_method const& _Filter);
transformer(
ScheduleGroup& _PScheduleGroup,
_Transform_method const& _Func,
_Inout_opt_ ITarget<_Output>* _PTarget = NULL);
transformer(
ScheduleGroup& _PScheduleGroup,
_Transform_method const& _Func,
_Inout_opt_ ITarget<_Output>* _PTarget,
filter_method const& _Filter);
Parametreler
_Func
Kabul edilen her ileti için çağrılacak bir işlev.
_PTarget
Transformatörle bağlantı kurmak için hedef blok işaretçisi.
_Filter
Sunulan iletilerin kabul edilip edilmeyeceğini belirleyen bir filtre işlevi.
_PScheduler
Scheduler nesnesi, transformer ileti bloğu için yayma görevinin zamanlandığı yerdir.
_PScheduleGroup
ScheduleGroup nesnesi, transformer ileti bloğu için yayma görevinin zamanlandığı yerdir.
Scheduler kullanılan nesne zamanlama grubuyla belirtilir.
Açıklamalar
_PScheduler veya _PScheduleGroup parametrelerini belirtmezseniz çalışma zamanı varsayılan zamanlayıcıyı kullanır.
_Transform_method türü, bir iletiyi işlemek için bu mesaj bloğu tarafından çağrılan _Output (_Input const &) imzalı bir işlevsel ara birimdir (functor).
Tür filter_method, imzalı bool (_Input const &) olan bir functor olup, bu transformer mesajlaşma bloğu tarafından sunulan bir mesajı kabul edip etmemesi gerektiğini belirlemek için çağrılır.
~transformer
Mesajlaşma bloğunu transformer yok eder.
~transformer();