Kelas ITarget

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

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.

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.

Ketika di-override di kelas turunan, memutuskan hubungan semua blok sumber dari blok ini ITarget.

virtual void unlink_sources() = 0;

Lihat juga

Namespace layanan konkurensi
Kelas ISource