nl:: Weave:: Profiles:: DataManagement_Legacy:: Binding
#include <src/lib/profiles/data-management/Legacy/Binding.h>
Class Binding mengelola status komunikasi atas nama entity aplikasi menggunakan Weave.
Ringkasan
Ketika aplikasi ingin menggunakan Weave untuk berkomunikasi dengan entitas jarak jauh, ada berbagai opsi. Class Binding menyusun opsi ini dan mengaturnya sedemikian rupa sehingga hal-hal yang mudah menjadi mudah dan hal-hal yang lebih sulit setidaknya dapat diterapkan. Opsi yang dicakup meliputi:
- komunikasi UDP unicast dengan {i> node<i} rekan yang diketahui.
- Siaran UDP dengan "any" {i>node<i}.
- komunikasi WRMP unicast dengan {i> node<i} rekan yang diketahui.
- komunikasi TCP dengan {i>node<i} rekan yang dikenal.
- komunikasi TCP dengan titik akhir layanan yang diketahui, menggunakan {i>instance<i} pengelola layanan untuk menyiapkan berbagai hal.
- komunikasi TCP berdasarkan koneksi yang telah dibuat sebelumnya.
Konstruktor dan Destruktor |
|
---|---|
Binding(void)
Konstruktor default untuk objek Binding.
|
|
~Binding(void)
Destruktor untuk objek Binding.
|
Jenis publik |
|
---|---|
@165{
|
enum Kumpulan status objek Binding. |
Atribut publik |
|
---|---|
mAuthMode
|
WeaveAuthMode
Mode autentikasi Weave yang akan digunakan.
|
mConnection
|
Pointer ke koneksi Weave yang saat ini digunakan dalam binding ini.
|
mEngine
|
Pointer ke objek ProtocolEngine yang terkait dengan Binding ini.
|
mPeerNodeId
|
uint64_t
ID node 64-bit dari target binding.
|
mServiceMgr
|
Pointer ke objek ServiceManager (opsional) yang akan digunakan dalam menyelesaikan binding ini.
|
mState
|
uint8_t
Status objek Binding saat ini.
|
mTransport
|
uint8_t
Transport yang akan digunakan dalam menyelesaikan Binding ini.
|
Fungsi publik |
|
---|---|
CompleteConfirm(WeaveConnection *aConnection)
|
void
Menangani konfirmasi permintaan binding.
|
CompleteConfirm(StatusReport & aReport)
|
void
Menangani kegagalan permintaan binding.
|
CompleteConfirm(void)
|
void
Menangani konfirmasi permintaan binding.
|
CompleteRequest(ProtocolEngine *aEngine)
|
Meminta penyelesaian binding.
|
Connect(WeaveConnection *aConnection)
|
Selesaikan binding TCP dengan menyediakan koneksi yang lengkap.
|
Finalize(void)
|
void
"Belum selesai" mengikat dan melepaskannya.
|
Finalize(WEAVE_ERROR aErr)
|
void
"Belum selesai" mengikat dan melepaskannya.
|
Free(void)
|
void
Hapus status binding.
|
GetExchangeCtx(WeaveExchangeManager *aExchangeMgr, void *aAppState)
|
Buat objek ExchangeContext dari Binding.
|
IncompleteIndication(StatusReport & aReport)
|
void
Menangani kegagalan binding.
|
Init(const uint64_t & aPeerNodeId)
|
Lakukan inisialisasi Binding hanya dengan ID node.
|
Init(const uint64_t & aPeerNodeId, uint8_t aTransport)
|
Lakukan inisialisasi objek Binding berdasarkan ID peer dan transpor.
|
Init(const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode)
|
Lakukan inisialisasi objek Binding ke endpoint layanan.
|
Init(WeaveConnection *aConnection)
|
Lakukan inisialisasi objek Binding dengan WeaveConnection.
|
IsComplete(void)
|
bool
Periksa apakah binding sudah selesai.
|
IsFree(void)
|
bool
Cek adalah binding gratis.
|
UncompleteRequest(void)
|
void
Menyebabkan binding tidak lengkap.
|
UncompleteRequest(WEAVE_ERROR aErr)
|
void
Menyebabkan binding tidak lengkap.
|
Jenis publik
@165
@165
Kumpulan status objek Binding.
Properti | |
---|---|
kState_Complete
|
Status Binding lengkap dan siap digunakan. |
kState_Completing
|
Status Binding sedang dalam proses penyelesaian. |
kState_Incomplete
|
Status awal (dan akhir) Binding. |
Atribut publik
mAuthMode
WeaveAuthMode mAuthMode
Mode autentikasi Weave yang akan digunakan.
(READ_ONLY)
Ini adalah mode autentikasi yang digunakan dalam semua komunikasi yang diatur oleh binding ini.
mConnection
WeaveConnection * mConnection
Pointer ke koneksi Weave yang saat ini digunakan dalam binding ini.
(HANYA BACA)
Pengikatan TCP dapat diinisialisasi langsung dengan koneksi atau bisa juga mengalokasikannya pada waktu penyelesaian.
mEngine
ProtocolEngine * mEngine
Pointer ke objek ProtocolEngine yang terkait dengan Binding ini.
Binding umumnya selesai dalam kaitannya dengan mesin protokol tertentu, yang sebagian besar digunakan sebagai cara mengakses MessageLayer. Di sinilah kita melacaknya.
mPeerNodeId
uint64_t mPeerNodeId
ID node 64-bit dari target binding.
(HANYA BACA)
Setiap Binding memiliki entity target, yang dinamai di sini. Selain ID node Weave, endpoint ini mungkin juga diberi nama endpoint layanan.
mServiceMgr
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager * mServiceMgr
Pointer ke objek ServiceManager (opsional) yang akan digunakan dalam menyelesaikan binding ini.
(HANYA BACA)
Saat mengikat ke layanan Weave, ID endpoint layanan 64-bit dapat diberikan pada waktu inisialisasi sebagai pengganti ID node Weave. Dalam hal ini, objek ServiceManager juga diperlukan untuk menyelesaikan binding. Binding TCP atau WRMP normal tidak memerlukan objek ServiceManager.
mState
uint8_t mState
Status objek Binding saat ini.
Hanya satu "selesai" bisa berjalan pada satu waktu dan, dalam hal apa pun, jika Anda meminta untuk menyelesaikan binding yang telah selesai, fungsi tersebut hanya akan segera memanggil fungsi konfirmasi. Variabel status di bawah melacak status saat ini dan bertindak sebagai penguncian.
mTransport
uint8_t mTransport
Transport yang akan digunakan dalam menyelesaikan Binding ini.
(HANYA BACA)
Nilai yang mungkin untuk mTransport ditentukan di DMConstants.h.
Fungsi publik
CompleteConfirm
void CompleteConfirm( WeaveConnection *aConnection )
Menangani konfirmasi permintaan binding.
Detail | |||
---|---|---|---|
Parameter |
|
CompleteConfirm
void CompleteConfirm( StatusReport & aReport )
Menangani kegagalan permintaan binding.
Detail | |||
---|---|---|---|
Parameter |
|
CompleteConfirm
void CompleteConfirm( void )
Menangani konfirmasi permintaan binding.
CompleteRequest
WEAVE_ERROR CompleteRequest( ProtocolEngine *aEngine )
Meminta penyelesaian binding.
Penyelesaian binding, setidaknya untuk binding yang memerlukan TCP, dilakukan sehubungan dengan objek ProtocolEngine tertentu, yang memberikan akses ke instance ExchangeManager.
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Nilai yang Ditampilkan |
|
||||||
Hasil |
Jika tidak, WEAVE_ERROR apa pun yang ditampilkan saat mencoba terhubung.
|
Connect
WEAVE_ERROR Connect( WeaveConnection *aConnection )
Selesaikan binding TCP dengan menyediakan koneksi yang lengkap.
Pengikatan TCP yang baru diinisialisasi tidak dapat digunakan hingga selesai. Biasanya ini dilakukan sesuai permintaan ketika aplikasi mencoba menggunakan pengikatan untuk mengirim pesan tetapi juga dapat diselesaikan secara eksplisit dengan menyediakan koneksi Weave.
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Nilai yang Ditampilkan |
|
Finalisasi
void Finalize( void )
"Belum selesai" mengikat dan melepaskannya.
Binding mungkin memiliki status yang memerlukan pembersihan, misalnya penutupan koneksi, yang ditangani oleh metode Uncomplete() selain status yang dibersihkan ke status awal oleh metode Free(). Metode ini, sebagian besar demi kenyamanan, memanggil keduanya.
Lihat juga:Menyelesaikan(WEAVE_ERROR)
Finalisasi
void Finalize( WEAVE_ERROR aErr )
"Belum selesai" mengikat dan melepaskannya.
Binding mungkin memiliki status yang memerlukan pembersihan, misalnya penutupan koneksi, yang ditangani oleh metode Uncomplete() selain status yang dibersihkan ke status awal oleh metode Free(). Metode ini, sebagian besar demi kenyamanan, memanggil keduanya.
Detail | |||
---|---|---|---|
Parameter |
|
Menyelesaikan(batal)
Gratis
void Free( void )
Hapus status binding.
Menampilkan semua status binding ke status aslinya tanpa syarat.
GetExchangeCtx
ExchangeContext * GetExchangeCtx( WeaveExchangeManager *aExchangeMgr, void *aAppState )
Buat objek ExchangeContext dari Binding.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Hasil |
pointer ke objek ExchangeContext, atau NULL jika gagal.
|
IncompleteIndication
void IncompleteIndication( StatusReport & aReport )
Menangani kegagalan binding.
Metode ini dipanggil dan, pada gilirannya, memanggil handler lapisan yang lebih tinggi saat binding gagal SETELAH selesai, yaitu setelah CompleteConfirm() dipanggil dengan status yang menunjukkan keberhasilan.
Detail | |||
---|---|---|---|
Parameter |
|
CompleteConfirm(StatusReport &aReport).
Init
WEAVE_ERROR Init( const uint64_t & aPeerNodeId )
Lakukan inisialisasi Binding hanya dengan ID node.
Ini menghasilkan binding dengan transpor default yang dikonfigurasi.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Nilai yang Ditampilkan |
|
Init
WEAVE_ERROR Init( const uint64_t & aPeerNodeId, uint8_t aTransport )
Lakukan inisialisasi objek Binding berdasarkan ID peer dan transpor.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Nilai yang Ditampilkan |
|
Init
WEAVE_ERROR Init( const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode )
Lakukan inisialisasi objek Binding ke endpoint layanan.
Berikut ini cara Anda mengikat ke endpoint tertentu di layanan Nest. Pengikatan semacam ini memerlukan proses penyelesaian multi-tahap, yang mungkin termasuk mengisi atau memperbarui cache direktori layanan lokal. Pada umumnya, proses ini disembunyikan dari aplikasi, tetapi ini berarti bahwa error yang timbul nanti dalam proses ini mungkin dikirimkan, biasanya melalui "konfirmasi" yang relevan callback, setelah - terkadang lama setelah - permintaan asli untuk menggunakan (dan menyelesaikan) pengikatan.
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Nilai yang Ditampilkan |
|
Init
WEAVE_ERROR Init( WeaveConnection *aConnection )
Lakukan inisialisasi objek Binding dengan WeaveConnection.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Nilai yang Ditampilkan |
|
IsComplete
bool IsComplete( void )
Periksa apakah binding sudah selesai.
Detail | |
---|---|
Hasil |
true jika lengkap, false jika tidak.
|
CompleteRequest(ProtocolEngine *aEngine)
IsFree
bool IsFree( void )
Cek adalah binding gratis.
"Gratis" dalam konteks ini berarti, "memiliki node peer yang ditentukan "ID". IsFree() should be thought of as meaning "has had Free() dipanggil dan tidak digunakan sejak itu".
Detail | |
---|---|
Hasil |
true jika binding gratis, false jika tidak.
|
UncompleteRequest
void UncompleteRequest( void )
Menyebabkan binding tidak lengkap.
Pada dasarnya, pengikatan harus dalam bentuk "tidak lengkap" setelah metode ini dipanggil tetapi, lebih halus, status relevan apa pun yang tidak terkandung dalam pengikatan itu sendiri, mis. koneksi TCP, harusnya dibersihkan juga. Aplikasi dapat mempertimbangkan untuk memanggil UncompleteRequest() sebagai bagian dari pembersihan saat terjadi error.
Lihat juga:UncompleteRequest(WEAVE_ERROR )
UncompleteRequest
void UncompleteRequest( WEAVE_ERROR aErr )
Menyebabkan binding tidak lengkap.
Pada dasarnya, pengikatan harus dalam bentuk "tidak lengkap" setelah metode ini dipanggil tetapi, lebih halus, status relevan apa pun yang tidak terkandung dalam pengikatan itu sendiri, mis. koneksi TCP, harusnya dibersihkan juga. Aplikasi dapat mempertimbangkan untuk memanggil UncompleteRequest() sebagai bagian dari pembersihan saat terjadi error.
Detail | |||
---|---|---|---|
Parameter |
|
UncompleteRequest(void)
~Binding
virtual ~Binding( void )
Destruktor untuk objek Binding.
Mengosongkan semua status internal DAN, jika perlu, menutup koneksi terbuka.