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

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 truemengembalikan , 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.

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.

Ketika ditimpa di kelas turunan, batalkan tautan semua blok sumber dari blok ini ITarget .

virtual void unlink_sources() = 0;

Baca juga

Namespace layanan konkurensi
Kelas ISource