Kelas propagator_block
Kelas propagator_block
adalah kelas dasar abstrak untuk blok pesan yang merupakan sumber dan target. Ini menggabungkan fungsionalitas kelas source_block
dan target_block
.
Sintaks
template<class _TargetLinkRegistry, class _SourceLinkRegistry, class _MessageProcessorType = ordered_message_processor<typename _TargetLinkRegistry::type::type>>
class propagator_block : public source_block<_TargetLinkRegistry,
_MessageProcessorType>,
public ITarget<typename _SourceLinkRegistry::type::source_type>;
Parameter
_TargetLinkRegistry
Registri tautan yang akan digunakan untuk menyimpan tautan target.
_SourceLinkRegistry
Registri tautan yang akan digunakan untuk menyimpan tautan sumber.
_MessageProcessorType
Jenis prosesor untuk pemrosesan pesan.
Anggota
Typedef Publik
Nama | Deskripsi |
---|---|
source_iterator |
Jenis iterator untuk source_link_manager ini propagator_block . |
Konstruktor Publik
Nama | Deskripsi |
---|---|
propagator_block | Membuat propagator_block objek. |
~propagator_block Destructor | Menghancurkan objek propagator_block . |
Metode Publik
Nama | Deskripsi |
---|---|
Menyebarkan | Secara asinkron meneruskan pesan dari blok sumber ke blok target ini. |
Mengirim | Secara sinkron memulai pesan ke blok ini. Dipanggil oleh blok ISource . Ketika fungsi ini selesai, pesan akan sudah disebarluaskan ke blok. |
Metode yang Dilindungi
Nama | Deskripsi |
---|---|
decline_incoming_messages | Menunjukkan ke blok bahwa pesan baru harus ditolak. |
initialize_source_and_target | Menginisialisasi objek dasar. Secara khusus, message_processor objek perlu diinisialisasi. |
link_source | Menautkan blok sumber tertentu ke objek ini propagator_block . |
process_input_messages | Memproses pesan input. Ini hanya berguna untuk blok propagator, yang berasal dari source_block (Ambil alih source_block::p rocess_input_messages.) |
propagate_message | Ketika ditimpa dalam kelas turunan, metode ini secara asinkron meneruskan pesan dari ISource blok ke objek ini propagator_block . Ini dipanggil oleh propagate metode , ketika dipanggil oleh blok sumber. |
register_filter | Mendaftarkan metode filter yang akan dipanggil pada setiap pesan yang diterima. |
remove_network_links | Menghapus semua tautan jaringan sumber dan target dari objek ini propagator_block . |
send_message | Ketika ditimpa dalam kelas turunan, metode ini secara sinkron meneruskan pesan dari ISource blok ke objek ini propagator_block . Ini dipanggil oleh send metode , ketika dipanggil oleh blok sumber. |
unlink_source | Batalkan tautan blok sumber tertentu dari objek ini propagator_block . |
unlink_sources | Batalkan tautan semua blok sumber dari objek ini propagator_block . (Penimpaan ITarget::unlink_sources.) |
Keterangan
Untuk menghindari beberapa warisan, propagator_block
kelas mewarisi dari source_block
kelas dan ITarget
kelas abstrak. Sebagian besar fungsionalitas di kelas direplikasi target_block
di sini.
Hierarki Warisan
propagator_block
Persyaratan
Header: agents.h
Namespace: konkurensi
decline_incoming_messages
Menunjukkan ke blok bahwa pesan baru harus ditolak.
void decline_incoming_messages();
Keterangan
Metode ini dipanggil oleh destruktor untuk memastikan bahwa pesan baru ditolak saat penghancuran sedang berlangsung.
initialize_source_and_target
Menginisialisasi objek dasar. Secara khusus, message_processor
objek perlu diinisialisasi.
void initialize_source_and_target(
_Inout_opt_ Scheduler* _PScheduler = NULL,
_Inout_opt_ ScheduleGroup* _PScheduleGroup = NULL);
Parameter
_PScheduler
Penjadwal yang akan digunakan untuk menjadwalkan tugas.
_PScheduleGroup
Grup jadwal yang akan digunakan untuk menjadwalkan tugas.
link_source
Menautkan blok sumber tertentu ke objek ini propagator_block
.
virtual void link_source(_Inout_ ISource<_Source_type>* _PSource);
Parameter
_PSource
Penunjuk ke ISource
blok yang akan ditautkan.
process_input_messages
Memproses pesan input. Ini hanya berguna untuk blok penyebar, yang berasal dari source_block
virtual void process_input_messages(_Inout_ message<_Target_type>* _PMessage);
Parameter
_PMessage
Penunjuk ke pesan yang akan diproses.
Menyebarkan
Secara asinkron meneruskan pesan dari blok sumber ke blok target ini.
virtual message_status propagate(
_Inout_opt_ message<_Source_type>* _PMessage,
_Inout_opt_ ISource<_Source_type>* _PSource);
Parameter
_PMessage
Penunjuk ke message
objek.
_PSource
Penunjuk ke blok sumber yang menawarkan pesan.
Tampilkan Nilai
Indikasi message_status tentang apa yang diputuskan target dengan pesan.
Keterangan
Metode propagate
ini dipanggil pada blok target oleh blok sumber tertaut. Ini mengantre tugas asinkron untuk menangani pesan, jika belum diantrekan atau dijalankan.
Metode ini melempar pengecualian invalid_argument jika _PMessage
parameter atau _PSource
adalah NULL
.
propagate_message
Ketika ditimpa dalam kelas turunan, metode ini secara asinkron meneruskan pesan dari ISource
blok ke objek ini propagator_block
. Ini dipanggil oleh propagate
metode , ketika dipanggil oleh blok sumber.
virtual message_status propagate_message(
_Inout_ message<_Source_type>* _PMessage,
_Inout_ ISource<_Source_type>* _PSource) = 0;
Parameter
_PMessage
Penunjuk ke message
objek.
_PSource
Penunjuk ke blok sumber yang menawarkan pesan.
Tampilkan Nilai
Indikasi message_status tentang apa yang diputuskan target dengan pesan.
propagator_block
Membuat propagator_block
objek.
propagator_block();
~propagator_block
Menghancurkan objek propagator_block
.
virtual ~propagator_block();
register_filter
Mendaftarkan metode filter yang akan dipanggil pada setiap pesan yang diterima.
void register_filter(filter_method const& _Filter);
Parameter
_Filter
Metode filter.
remove_network_links
Menghapus semua tautan jaringan sumber dan target dari objek ini propagator_block
.
void remove_network_links();
Mengirim
Secara sinkron memulai pesan ke blok ini. Dipanggil oleh blok ISource
. Ketika fungsi ini selesai, pesan akan sudah disebarluaskan ke blok.
virtual message_status send(
_Inout_ message<_Source_type>* _PMessage,
_Inout_ ISource<_Source_type>* _PSource);
Parameter
_PMessage
Penunjuk ke message
objek.
_PSource
Penunjuk ke blok sumber yang menawarkan pesan.
Tampilkan Nilai
Indikasi message_status tentang apa yang diputuskan target dengan pesan.
Keterangan
Metode ini melemparkan pengecualian invalid_argument jika _PMessage
parameter atau _PSource
adalah NULL
.
send_message
Ketika ditimpa dalam kelas turunan, metode ini secara sinkron meneruskan pesan dari ISource
blok ke objek ini propagator_block
. Ini dipanggil oleh send
metode , ketika dipanggil oleh blok sumber.
virtual message_status send_message(
_Inout_ message<_Source_type> *,
_Inout_ ISource<_Source_type> *);
Tampilkan Nilai
Indikasi message_status tentang apa yang diputuskan target dengan pesan.
Keterangan
Secara default, blok ini mengembalikan declined
kecuali ditimpa oleh kelas turunan.
unlink_source
Batalkan tautan blok sumber tertentu dari objek ini propagator_block
.
virtual void unlink_source(_Inout_ ISource<_Source_type>* _PSource);
Parameter
_PSource
Penunjuk ke ISource
blok yang akan dilepas tautannya.
unlink_sources
Batalkan tautan semua blok sumber dari objek ini propagator_block
.
virtual void unlink_sources();
Baca juga
Namespace layanan konkurensi
Kelas source_block
Kelas ITarget
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk