Kelas ITarget
Kelas ITarget
adalah antarmuka untuk semua blok target. Blok target mengonsumsi pesan yang ditawarkan kepada mereka berdasarkan ISource
blok.
Sintaks
template<class T>
class ITarget;
Parameter
T
Jenis data payload dalam pesan yang diterima oleh blok target.
Anggota
Typedef Publik
Nama | Deskripsi |
---|---|
filter_method |
Tanda tangan metode apa pun yang digunakan oleh blok yang mengembalikan bool nilai untuk menentukan apakah pesan yang ditawarkan harus diterima. |
type |
Alias jenis untuk T . |
Konstruktor Publik
Nama | Deskripsi |
---|---|
~ITarget Destructor | ITarget Menghancurkan objek. |
Metode Publik
Nama | Deskripsi |
---|---|
Menyebarkan | Ketika ditimpa di kelas turunan, secara asinkron meneruskan pesan dari blok sumber ke blok target ini. |
Mengirim | Ketika ditimpa di kelas turunan, secara sinkron meneruskan pesan ke blok target. |
supports_anonymous_source | Saat ditimpa dalam kelas turunan, mengembalikan true atau false tergantung pada apakah blok pesan menerima pesan yang ditawarkan oleh sumber yang tidak ditautkan ke dalamnya. Jika metode yang ditimpa true mengembalikan , target tidak dapat menunda pesan yang ditawarkan, karena konsumsi pesan yang ditunda di lain waktu mengharuskan sumber diidentifikasi dalam registri tautan sumbernya. |
Metode yang Dilindungi
Nama | Deskripsi |
---|---|
link_source | Ketika ditimpa di kelas turunan, menautkan blok sumber tertentu ke blok ini ITarget . |
unlink_source | Ketika ditimpa di kelas turunan, batalkan tautan blok sumber tertentu dari blok ini ITarget . |
unlink_sources | Ketika ditimpa di kelas turunan, batalkan tautan semua blok sumber dari blok ini ITarget . |
Keterangan
Untuk informasi selengkapnya, lihat Blok Pesan Asinkron.
Hierarki Warisan
ITarget
Persyaratan
Header: agents.h
Namespace: konkurensi
~ITarget
ITarget
Menghancurkan objek.
virtual ~ITarget();
link_source
Ketika ditimpa di kelas turunan, menautkan blok sumber tertentu ke blok ini ITarget
.
virtual void link_source(_Inout_ ISource<T>* _PSource) = 0;
Parameter
_PSource
Blok yang ISource
sedang ditautkan ke blok ini ITarget
.
Keterangan
Fungsi ini tidak boleh dipanggil langsung pada ITarget
blok. Blok harus dihubungkan bersama-sama menggunakan link_target
metode pada ISource
blok, yang akan memanggil link_source
metode pada target yang sesuai.
Menyebarkan
Ketika ditimpa di kelas turunan, secara asinkron meneruskan pesan dari blok sumber ke blok target ini.
virtual message_status propagate(
_Inout_opt_ message<T>* _PMessage,
_Inout_opt_ ISource<T>* _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.
Keterangan
Metode ini melempar pengecualian invalid_argument jika _PMessage
parameter atau _PSource
adalah NULL
.
Mengirim
Ketika ditimpa di kelas turunan, secara sinkron meneruskan pesan ke blok target.
virtual message_status send(
_Inout_ message<T>* _PMessage,
_Inout_ ISource<T>* _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.
Keterangan
Metode ini melempar pengecualian invalid_argument jika _PMessage
parameter atau _PSource
adalah NULL
.
Menggunakan metode di send
luar inisiasi pesan dan untuk menyebarluaskan pesan dalam jaringan berbahaya dan dapat menyebabkan kebuntuan.
Ketika send
kembali, pesan telah diterima, dan ditransfer ke blok target, atau telah ditolak oleh target.
supports_anonymous_source
Saat ditimpa dalam kelas turunan, mengembalikan true atau false tergantung pada apakah blok pesan menerima pesan yang ditawarkan oleh sumber yang tidak ditautkan ke dalamnya. Jika metode yang ditimpa true
mengembalikan , target tidak dapat menunda pesan yang ditawarkan, karena konsumsi pesan yang ditunda di lain waktu mengharuskan sumber diidentifikasi dalam registri tautan asamnya.
virtual bool supports_anonymous_source();
Tampilkan Nilai
true
jika blok dapat menerima pesan dari sumber yang tidak ditautkan ke false
sumber tersebut jika tidak.
unlink_source
Ketika ditimpa di kelas turunan, batalkan tautan blok sumber tertentu dari blok ini ITarget
.
virtual void unlink_source(_Inout_ ISource<T>* _PSource) = 0;
Parameter
_PSource
Blok ISource
yang dilepas tautannya dari blok ini ITarget
.
Keterangan
Fungsi ini tidak boleh dipanggil langsung pada ITarget
blok. Blok harus diputus menggunakan unlink_target
metode atau unlink_targets
pada ISource
blok, yang akan memanggil unlink_source
metode pada target yang sesuai.
unlink_sources
Ketika ditimpa di kelas turunan, batalkan tautan semua blok sumber dari blok ini ITarget
.
virtual void unlink_sources() = 0;
Baca juga
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