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
Arabellek tarafından kabul edilen iletilerin yük türü.
_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üklendi. 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 |
Daha önce tarafından sunulan ve hedef tarafından transformer ayrılmış bir iletiyi kullanır 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 |
Bir bloktan ISource gelen iletiyi zaman uyumsuz olarak bu transformer mesajlaşma bloğuna geçirir. Bir kaynak bloğu tarafından çağrıldığında yöntemi tarafından propagate çağrılır. |
propagate_to_any_targets |
Transformatör işlevini giriş iletilerinde yürütür. |
release_message |
Önceki ileti rezervasyonlarını yayınlar. (Geçersiz kılmalar 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ılmalar source_block::reserve_message.) |
resume_propagation |
Rezervasyon yayımlandıktan sonra yayılmaya devam eder. (Geçersiz kılmalar source_block::resume_propagation.) |
send_message |
Bir bloktan gelen iletiyi zaman uyumlu bir ISource şekilde bu transformer mesajlaşma bloğuna geçirir. Bir kaynak bloğu tarafından çağrıldığında yöntemi tarafından send çağrılır. |
supports_anonymous_source |
Bu bloğun supports_anonymous_source bağlı olmayan bir kaynak tarafından sunulan iletileri kabul ettiğini belirtmek için 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
runtime_object_identity Sunulan message nesnenin öğesi.
Dönüş Değeri
Çağıranın message artık sahip olduğu nesnenin işaretçisi.
consume_message
Daha önce tarafından sunulan ve hedef tarafından transformer ayrılmış bir iletiyi kullanır ve 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 message artık sahip olduğu nesnenin işaretçisi.
Açıklamalar
benzeridir accept, ancak her zaman için bir çağrısının reserveönündedir.
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
Bir bloktan ISource gelen iletiyi zaman uyumsuz olarak bu transformer mesajlaşma bloğuna geçirir. Bir kaynak bloğu tarafından çağrıldığında yöntemi tarafından propagate çağ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 verdiklerine ilişkin message_status bir gösterge.
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 ileti rezervasyonlarını yayınlar.
virtual void release_message(runtime_object_identity _MsgId);
Parametreler
_MsgId
Serbest runtime_object_identity bırakılan nesnenin message .
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 ayrılmışsa, false aksi takdirde.
Açıklamalar
çağrıldıktan sonrareserve, döndürüyorsatrueconsume, iletinin sahipliğini almak veya release yayınlamak için çağrılmalıdır.
resume_propagation
Rezervasyon yayımlandıktan sonra yayılmaya devam eder.
virtual void resume_propagation();
send_message
Bir bloktan gelen iletiyi zaman uyumlu bir ISource şekilde bu transformer mesajlaşma bloğuna geçirir. Bir kaynak bloğu tarafından çağrıldığında yöntemi tarafından send çağ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 verdiklerine ilişkin message_status bir gösterge.
supports_anonymous_source
Bu bloğun supports_anonymous_source bağlı olmayan bir kaynak tarafından sunulan iletileri kabul ettiğini belirtmek için 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ı oluşturmak için hedef bloğun işaretçisi.
_Filter
Sunulan iletilerin kabul edilip edilmeyeceğini belirleyen bir filtre işlevi.
_PScheduler
Scheduler İleti bloğu için yayma görevinin transformer zamanlandığı nesne.
_PScheduleGroup
ScheduleGroup İleti bloğu için yayma görevinin transformer zamanlandığı nesne.
Scheduler Kullanılan nesne zamanlama grubu tarafından örtülür.
Açıklamalar
veya _PScheduler parametrelerini belirtmezseniz çalışma zamanı varsayılan zamanlayıcıyı _PScheduleGroup kullanır.
türü_Transform_method, bir iletiyi işlemek için bu _Output (_Input const &) mesajlaşma bloğu tarafından çağrılan imzalı transformer bir functor'dır.
Türüfilter_method, sunulan bir iletiyi kabul edip etmemesi gerektiğini belirlemek için bu bool (_Input const &) mesajlaşma bloğu tarafından çağrılan imzalı transformer bir functor'dır.
~transformer
Mesajlaşma bloğunu transformer yok eder.
~transformer();