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 ISource adalah antarmuka untuk semua blok sumber. Blok sumber menyebarluaskan pesan ke ITarget blok.
Sintaks
template<class T>
class ISource;
Parameter
T
Jenis data payload dalam pesan yang dihasilkan oleh blok sumber.
Anggota
Typedef Publik
| Nama | Deskripsi |
|---|---|
source_type |
Alias jenis untuk T. |
Konstruktor Publik
| Nama | Deskripsi |
|---|---|
| ~ISource Destructor | ISource Menghancurkan objek. |
Metode Publik
| Nama | Deskripsi |
|---|---|
| terima | Ketika ditimpa di kelas turunan, menerima pesan yang ditawarkan oleh blok ini ISource , mentransfer kepemilikan ke pemanggil. |
| acquire_ref | Ketika ditimpa di kelas turunan, memperoleh jumlah referensi pada blok ini ISource , untuk mencegah penghapusan. |
| minum | Ketika ditimpa di kelas turunan, mengonsumsi pesan yang sebelumnya ditawarkan oleh blok ini ISource dan berhasil dicadangkan oleh target, mentransfer kepemilikan ke pemanggil. |
| link_target | Ketika ditimpa di kelas turunan, menautkan blok target ke blok ini ISource . |
| lepaskan | Saat ditimpa di kelas turunan, merilis reservasi pesan yang berhasil sebelumnya. |
| release_ref | Saat ditimpa di kelas turunan, merilis jumlah referensi pada blok ini ISource . |
| reserve | Ketika ditimpa di kelas turunan, pesan yang sebelumnya ditawarkan oleh blok ini ISource . |
| unlink_target | Ketika ditimpa di kelas turunan, batalkan tautan blok target dari blok ini ISource , jika ditemukan ditautkan sebelumnya. |
| unlink_targets | Ketika ditimpa di kelas turunan, batalkan tautan semua blok target dari blok ini ISource . |
Keterangan
Untuk informasi selengkapnya, lihat Blok Pesan Asinkron.
Hierarki Warisan
ISource
Persyaratan
Header: agents.h
Namespace: konkurensi
Menerima
Ketika ditimpa di kelas turunan, menerima pesan yang ditawarkan oleh blok ini ISource , mentransfer kepemilikan ke pemanggil.
virtual message<T>* accept(
runtime_object_identity _MsgId,
_Inout_ ITarget<T>* _PTarget) = 0;
Parameter
_MsgId
Dari runtime_object_identity objek yang ditawarkan message .
_PTarget
Penunjuk ke blok target yang memanggil accept metode .
Tampilkan Nilai
Penunjuk ke pesan yang sekarang dimiliki pemanggil.
Keterangan
Metode accept ini dipanggil oleh target saat pesan sedang ditawarkan oleh blok ini ISource . Penunjuk pesan yang dikembalikan mungkin berbeda dari yang diteruskan ke propagate metode ITarget blok, jika sumber ini memutuskan untuk membuat salinan pesan.
acquire_ref
Ketika ditimpa di kelas turunan, memperoleh jumlah referensi pada blok ini ISource , untuk mencegah penghapusan.
virtual void acquire_ref(_Inout_ ITarget<T>* _PTarget) = 0;
Parameter
_PTarget
Penunjuk ke blok target yang memanggil metode ini.
Keterangan
Metode ini dipanggil oleh ITarget objek yang sedang ditautkan ke sumber ini selama link_target metode .
mengkonsumsi
Ketika ditimpa di kelas turunan, mengonsumsi pesan yang sebelumnya ditawarkan oleh blok ini ISource dan berhasil dicadangkan oleh target, mentransfer kepemilikan ke pemanggil.
virtual message<T>* consume(
runtime_object_identity _MsgId,
_Inout_ ITarget<T>* _PTarget) = 0;
Parameter
_MsgId
Objek runtime_object_identity yang dipesan message .
_PTarget
Penunjuk ke blok target yang memanggil consume metode .
Tampilkan Nilai
Penunjuk ke message objek yang sekarang dimiliki pemanggil.
Keterangan
Metode consume ini mirip acceptdengan , tetapi harus selalu didahului oleh panggilan ke reserve yang dikembalikan true.
~ISource
ISource Menghancurkan objek.
virtual ~ISource();
link_target
Ketika ditimpa di kelas turunan, menautkan blok target ke blok ini ISource .
virtual void link_target(_Inout_ ITarget<T>* _PTarget) = 0;
Parameter
_PTarget
Penunjuk ke blok target yang ditautkan ke blok ini ISource .
rilis
Saat ditimpa di kelas turunan, merilis reservasi pesan yang berhasil sebelumnya.
virtual void release(
runtime_object_identity _MsgId,
_Inout_ ITarget<T>* _PTarget) = 0;
Parameter
_MsgId
Objek runtime_object_identity yang dipesan message .
_PTarget
Penunjuk ke blok target yang memanggil release metode .
release_ref
Saat ditimpa di kelas turunan, merilis jumlah referensi pada blok ini ISource .
virtual void release_ref(_Inout_ ITarget<T>* _PTarget) = 0;
Parameter
_PTarget
Penunjuk ke blok target yang memanggil metode ini.
Keterangan
Metode ini dipanggil oleh ITarget objek yang sedang dilepas tautannya dari sumber ini. Blok sumber diizinkan untuk merilis sumber daya apa pun yang dicadangkan untuk blok target.
reserve
Ketika ditimpa di kelas turunan, pesan yang sebelumnya ditawarkan oleh blok ini ISource .
virtual bool reserve(
runtime_object_identity _MsgId,
_Inout_ ITarget<T>* _PTarget) = 0;
Parameter
_MsgId
Dari runtime_object_identity objek yang ditawarkan message .
_PTarget
Penunjuk ke blok target yang memanggil reserve metode .
Tampilkan Nilai
true jika pesan berhasil dicadangkan, false jika tidak. Reservasi dapat gagal karena banyak alasan, termasuk: pesan sudah dicadangkan atau diterima oleh target lain, sumber dapat menolak reservasi, dan sebagainya.
Keterangan
Setelah Anda memanggil reserve, jika berhasil, Anda harus memanggil baik consume atau release untuk mengambil atau menyerah kepemilikan pesan, masing-masing.
unlink_target
Ketika ditimpa di kelas turunan, batalkan tautan blok target dari blok ini ISource , jika ditemukan ditautkan sebelumnya.
virtual void unlink_target(_Inout_ ITarget<T>* _PTarget) = 0;
Parameter
_PTarget
Penunjuk ke blok target dilepas tautannya dari blok ini ISource .
unlink_targets
Ketika ditimpa di kelas turunan, batalkan tautan semua blok target dari blok ini ISource .
virtual void unlink_targets() = 0;