Pemanggilan Kelas

Blok pesan call adalah target_block multi-sumber yang diurutkan yang memanggil fungsi tertentu saat menerima pesan.

Sintaks

template<class T, class _FunctorType = std::function<void(T const&)>>
class call : public target_block<multi_link_registry<ISource<T>>>;

Parameter

T
Jenis payload pesan yang disebarkan ke blok ini.

_FunctorType
Tanda tangan dari fungsi-fungsi yang dapat diterima oleh blok ini.

Anggota

Konstruktor Publik

Nama Deskripsi
panggil Kelebihan beban. Membuat call blok pesan.
~panggil Destructor Menghancurkan blok pesan call.

Metode yang Dilindungi

Nama Deskripsi
process_input_messages Menjalankan fungsi panggilan pada pesan input.
process_message Memproses pesan yang diterima di blok pesan ini call.
propagate_message Secara asinkron meneruskan pesan dari ISource blok ke blok olahpesan ini call . Ini dipanggil oleh metode propagate ketika dipanggil oleh blok sumber.
send_message Secara sinkron meneruskan pesan dari ISource blok ke blok olahpesan ini call . Ini dipanggil oleh metode send ketika dipanggil oleh blok sumber.
mendukung_sumber_anonim Mengganti metode supports_anonymous_source untuk menunjukkan bahwa blok ini dapat menerima pesan yang ditawarkan oleh sumber yang tidak ditautkan. (Menggantikan ITarget::supports_anonymous_source.)

Keterangan

Untuk informasi selengkapnya, lihat Blok Pesan Asinkron.

Hierarki Pewarisan

ITarget

target_block

call

Persyaratan

Header: agents.h

Namespace: konkurensi

panggil

Membuat call blok pesan.

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

Parameter

_Func
Fungsi yang akan dipanggil untuk setiap pesan yang diterima.

_Filter
Fungsi filter yang menentukan apakah pesan yang ditawarkan harus diterima.

_PScheduler
Objek Scheduler di mana tugas propagasi untuk blok olahpesan call dijadwalkan.

_PScheduleGroup
Objek ScheduleGroup di mana tugas propagasi untuk blok olahpesan call dijadwalkan. Objek Scheduler yang digunakan dapat disimpulkan dari grup jadwal.

Keterangan

Runtime menggunakan penjadwal default jika Anda tidak menentukan _PScheduler parameter atau _PScheduleGroup .

Jenisnya _Call_method adalah funktor dengan tanda tangan void (T const &) yang dipanggil oleh blok olahpesan ini call untuk memproses pesan.

Jenis filter_method adalah funktor dengan tanda tangan bool (T const &) yang dipanggil oleh blok pesan call ini untuk menentukan apakah harus menerima pesan yang ditawarkan atau tidak.

~panggil

Menghancurkan blok pesan call.

~call();

proses_pesan_masukan

Menjalankan fungsi panggilan pada pesan input.

virtual void process_input_messages(_Inout_ message<T>* _PMessage);

Parameter

_PMessage
Penunjuk ke pesan yang akan ditangani.

process_message

Memproses pesan yang diterima di blok pesan ini call.

virtual void process_message(_Inout_ message<T>* _PMessage);

Parameter

_PMessage
Penunjuk ke pesan yang akan ditangani.

sebarkan_pesan

Secara asinkron meneruskan pesan dari ISource blok ke blok olahpesan ini call . Ini dipanggil oleh metode propagate ketika dipanggil oleh blok sumber.

virtual message_status propagate_message(
    _Inout_ message<T>* _PMessage,
    _Inout_ ISource<T>* _PSource);

Parameter

_PMessage
Penunjuk ke message objek.

_PSource
Penunjuk ke blok sumber yang menawarkan pesan.

Tampilkan Nilai

Tanda message_status tentang keputusan target terhadap pesan.

kirim_pesan

Secara sinkron meneruskan pesan dari ISource blok ke blok olahpesan ini call . Ini dipanggil oleh metode send ketika dipanggil oleh blok sumber.

virtual message_status send_message(
    _Inout_ message<T>* _PMessage,
    _Inout_ ISource<T>* _PSource);

Parameter

_PMessage
Penunjuk ke message objek.

_PSource
Penunjuk ke blok sumber yang menawarkan pesan.

Tampilkan Nilai

Tanda message_status tentang keputusan target terhadap pesan.

mendukung_sumber_anonim

Mengganti metode supports_anonymous_source untuk menunjukkan bahwa blok ini dapat menerima pesan yang ditawarkan oleh sumber yang tidak ditautkan.

virtual bool supports_anonymous_source();

Tampilkan Nilai

true karena blok tidak menunda pesan yang ditawarkan.

Lihat juga

Namespace layanan konkurensi
Kelas Transformer