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 call bloğu, ileti alırken belirtilen işlevi çağıran çok kaynaklı, sıralı target_block bir blokdur.
Sözdizimi
template<class T, class _FunctorType = std::function<void(T const&)>>
class call : public target_block<multi_link_registry<ISource<T>>>;
Parametreler
T
Bu bloğa yayılan iletilerin yük türü.
_FunctorType
Bu bloğun kabul edebildiği işlevlerin imzası.
Üyeler
Ortak Oluşturucular
| Veri Akışı Adı | Açıklama |
|---|---|
| çağırmak | Aşırı yüklü Bir call mesajlaşma bloğu oluşturur. |
| Destructor'u Çağır | Mesajlaşma bloğunu call yok eder. |
Korumalı Yöntemler
| Veri Akışı Adı | Açıklama |
|---|---|
| process_input_messages | Giriş iletilerinde çağrı işlevini yürütür. |
| process_message | Bu call mesajlaşma bloğu tarafından kabul edilen bir iletiyi işler. |
| propagate_message |
ISource bloktan gelen bir mesajı zaman uyumsuz olarak bu call mesajlaşma bloğuna geçirir.
propagate yöntemi, bir kaynak bloğu tarafından çağrıldığında çalıştırılır. |
| send_message | Bir bloktan iletiyi senkronize olarak bu call 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
call
Gereksinimler
Üst bilgi: agents.h
Ad alanı: eşzamanlılık
çağrı
Bir call mesajlaşma bloğu oluşturur.
call(
_Call_method const& _Func);
call(
_Call_method const& _Func,
filter_method const& _Filter);
call(
Scheduler& _PScheduler,
_Call_method const& _Func);
call(
Scheduler& _PScheduler,
_Call_method const& _Func,
filter_method const& _Filter);
call(
ScheduleGroup& _PScheduleGroup,
_Call_method const& _Func);
call(
ScheduleGroup& _PScheduleGroup,
_Call_method const& _Func,
filter_method const& _Filter);
Parametreler
_Func
Kabul edilen her ileti için çağrılacak bir işlev.
_Filtre
Sunulan iletilerin kabul edilip edilmeyeceğini belirleyen bir filtre işlevi.
_PScheduler
Scheduler nesnesi, call ileti bloğu için yayma görevinin zamanlandığı yerdir.
_PScheduleGroup
ScheduleGroup nesnesi, call 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.
_Call_method türü, bir iletiyi işlemek için bu mesaj bloğu tarafından çağrılan void (T const &) imzalı bir işlevsel ara birimdir (functor).
Tür filter_method, imzalı bool (T const &) olan bir functor olup, bu call mesajlaşma bloğu tarafından sunulan bir mesajı kabul edip etmemesi gerektiğini belirlemek için çağrılır.
~çağırmak
Mesajlaşma bloğunu call yok eder.
~call();
girdi_mesajlarını_işle
Giriş iletilerinde çağrı işlevini yürütür.
virtual void process_input_messages(_Inout_ message<T>* _PMessage);
Parametreler
_PMessage
İşlenecek olan mesaja yönelik işaretçi.
process_message
Bu call mesajlaşma bloğu tarafından kabul edilen bir iletiyi işler.
virtual void process_message(_Inout_ message<T>* _PMessage);
Parametreler
_PMessage
İşlenecek mesajın işaretçisi.
propagate_message
ISource bloktan gelen bir mesajı zaman uyumsuz olarak bu call 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<T>* _PMessage,
_Inout_ ISource<T>* _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.
mesaj_gönder
Bir bloktan iletiyi senkronize olarak bu call 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<T>* _PMessage,
_Inout_ ISource<T>* _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.
anonim_kaynağı_destekler
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.