Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Kelas ITarget adalah antarmuka untuk semua blok target. Blok target memproses pesan yang ditawarkan oleh blok ISource kepada mereka.
Sintaks
template<class T>
class ITarget;
Parameter
T
Jenis data payload di dalam pesan yang diterima oleh blok sasaran.
Anggota
Typedef Publik
| Nama | Deskripsi |
|---|---|
filter_method |
"Signatur metode apa pun yang digunakan oleh blok untuk mengembalikan nilai bool guna 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 metode ini diimplementasikan kembali di kelas turunan, pesan diteruskan secara asinkron dari blok sumber ke blok target ini. |
| kirim | Ketika di-override di kelas turunan, pesan diteruskan secara sinkron ke blok target. |
| mendukung_sumber_anonim | Saat ditimpa dalam kelas turunan, mengembalikan true atau false tergantung pada apakah blok pesan menerima pesan yang ditawarkan oleh sumber yang tidak ditautkan dengannya. Jika metode yang ditimpa mengembalikan true, 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 | Saat dioverride di kelas turunan, menghubungkan blok sumber yang ditentukan ke blok ITarget ini. |
| unlink_source | Saat di-override pada kelas turunan, putuskan tautan blok sumber yang ditentukan dari blok ini ITarget. |
| unlink_sources (melepaskan_sumber) | Ketika di-override di kelas turunan, memutuskan hubungan semua blok sumber dari blok ini ITarget. |
Keterangan
Untuk informasi selengkapnya, lihat Blok Pesan Asinkron.
Hierarki Pewarisan
ITarget
Persyaratan
Header: agents.h
Namespace: konkurensi
~ITarget
ITarget Menghancurkan objek.
virtual ~ITarget();
link_source
Saat di-override di kelas turunan, menautkan blok sumber tertentu ke blok ini ITarget.
virtual void link_source(_Inout_ ISource<T>* _PSource) = 0;
Parameter
_PSource
Blok ISource ditautkan dengan blok ITarget ini.
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.
Mendistribusikan
Ketika metode ini diimplementasikan kembali di kelas turunan, pesan diteruskan secara asinkron 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 menyediakan pesan.
Tampilkan Nilai
Indikasi message_status dari keputusan yang diambil oleh target terhadap pesan tersebut.
Keterangan
Metode ini melempar pengecualian invalid_argument jika salah satu parameter _PMessage atau _PSource adalah NULL.
kirim
Ketika di-override di kelas turunan, pesan diteruskan secara sinkron 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
Tanda message_status tentang keputusan target terhadap pesan.
Keterangan
Metode ini melempar pengecualian `invalid_argument` jika parameter _PMessage atau _PSource adalah NULL.
Penggunaan metode di send di luar inisiasi pesan dan untuk menyebarkan pesan dalam jaringan berbahaya dan dapat menyebabkan kebuntuan.
Ketika send kembali, pesan mungkin sudah diterima dan ditransfer ke blok target, atau bisa jadi telah ditolak oleh target.
mendukung_sumber_anonim
Saat ditimpa dalam kelas turunan, mengembalikan true atau false tergantung pada apakah blok pesan menerima pesan yang ditawarkan oleh sumber yang tidak ditautkan dengannya. Jika metode yang ditimpa mengembalikan true, target tidak dapat menunda pesan yang ditawarkan, karena konsumsi pesan yang ditunda di lain waktu mengharuskan sumber diidentifikasi dalam registri tautan asalnya.
virtual bool supports_anonymous_source();
Tampilkan Nilai
true jika blok dapat menerima pesan dari sumber yang tidak ditautkan ke blok tersebut false jika tidak.
putus_sumber
Saat di-override pada kelas turunan, putuskan tautan blok sumber yang ditentukan dari blok ini ITarget.
virtual void unlink_source(_Inout_ ISource<T>* _PSource) = 0;
Parameter
_PSource
Blok ISource sedang tidak lagi terhubung dengan blok ITarget ini.
Keterangan
Fungsi ini tidak boleh dipanggil langsung pada ITarget blok. Blok harus diputus melalui metode unlink_target atau unlink_targets pada blok ISource, yang akan memanggil metode unlink_source pada target yang sesuai.
putuskan_sumber
Ketika di-override di kelas turunan, memutuskan hubungan semua blok sumber dari blok ini ITarget.
virtual void unlink_sources() = 0;