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
Saat aplikasi ingin menggunakan Weave untuk berkomunikasi dengan entitas jarak jauh, ada berbagai pilihan. Class Binding menyertakan opsi ini dan mengaturnya sedemikian rupa sehingga hal yang mudah menjadi mudah, sedangkan hal yang lebih sulit setidaknya dapat dipahami. Opsi yang dibahas meliputi:
- komunikasi UDP unicast dengan {i>node<i} peer yang diketahui.
- Siaran UDP dengan node "mana pun".
- komunikasi WRMP unicast dengan {i>node<i} rekan yang diketahui.
- Komunikasi TCP dengan node peer yang diketahui.
- Komunikasi TCP dengan titik akhir layanan yang diketahui menggunakan instance pengelola layanan untuk menyiapkan segala sesuatu.
- 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 pengikatan.
|
CompleteConfirm(StatusReport & aReport)
|
void
Menangani kegagalan permintaan pengikatan.
|
CompleteConfirm(void)
|
void
Menangani konfirmasi permintaan pengikatan.
|
CompleteRequest(ProtocolEngine *aEngine)
|
Meminta penyelesaian binding.
|
Connect(WeaveConnection *aConnection)
|
Menyelesaikan binding TCP dengan menyediakan koneksi yang lengkap.
|
Finalize(void)
|
void
"Batalkan penyelesaian" binding dan kosongkan.
|
Finalize(WEAVE_ERROR aErr)
|
void
"Batalkan penyelesaian" binding dan kosongkan.
|
Free(void)
|
void
Menghapus status binding.
|
GetExchangeCtx(WeaveExchangeManager *aExchangeMgr, void *aAppState)
|
Membuat objek ExchangeContext dari Binding.
|
IncompleteIndication(StatusReport & aReport)
|
void
Menangani kegagalan binding.
|
Init(const uint64_t & aPeerNodeId)
|
Melakukan inisialisasi Binding hanya dengan ID node.
|
Init(const uint64_t & aPeerNodeId, uint8_t aTransport)
|
Melakukan inisialisasi objek Binding berdasarkan transpor dan ID peer.
|
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 yang lengkap dan siap digunakan. |
kState_Completing
|
Status Binding yang sedang dalam proses penyelesaian. |
kState_Incomplete
|
Status awal (dan terakhir) Binding. |
Atribut publik
mAuthMode
WeaveAuthMode mAuthMode
Mode autentikasi Weave yang akan digunakan.
(HANYA_BACA)
Ini adalah mode otentikasi yang digunakan dalam semua komunikasi yang diatur oleh pengikatan ini.
mConnection
WeaveConnection * mConnection
Pointer ke koneksi Weave yang saat ini digunakan dalam binding ini.
(HANYA BACA)
Binding TCP dapat diinisialisasi dengan koneksi sejak awal atau dapat mengalokasikannya pada waktu penyelesaian.
mEngine
ProtocolEngine * mEngine
Pointer ke objek ProtocolEngine yang terkait dengan Binding ini.
Pengikatan umumnya diselesaikan sehubungan dengan mesin protokol tertentu, yang sebagian besar digunakan sebagai cara mengakses MessageLayer. Di sinilah kami 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, ini dapat menamai endpoint layanan.
mServiceMgr
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager * mServiceMgr
Pointer ke objek ServiceManager (opsional) yang akan digunakan dalam menyelesaikan binding ini.
(HANYA BACA)
Saat melakukan binding ke layanan Weave, ID endpoint layanan 64-bit mungkin 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 operasi "lengkap" yang dapat berjalan pada satu waktu dan, dalam hal apa pun, jika Anda meminta untuk menyelesaikan binding yang telah selesai, operasi cukup memanggil fungsi konfirmasi dengan segera. 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 memungkinkan untuk mTransport ditentukan dalam DMConstants.h.
Fungsi publik
CompleteConfirm
void CompleteConfirm( WeaveConnection *aConnection )
Menangani konfirmasi permintaan pengikatan.
Detail | |||
---|---|---|---|
Parameter |
|
CompleteConfirm
void CompleteConfirm( StatusReport & aReport )
Menangani kegagalan permintaan pengikatan.
Detail | |||
---|---|---|---|
Parameter |
|
CompleteConfirm
void CompleteConfirm( void )
Menangani konfirmasi permintaan pengikatan.
CompleteRequest
WEAVE_ERROR CompleteRequest( ProtocolEngine *aEngine )
Meminta penyelesaian binding.
Penyelesaian binding, setidaknya untuk binding yang memerlukan TCP, dilakukan sehubungan dengan objek ProtocolEngine tertentu, yang menyediakan akses ke instance ExchangeManager.
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Nilai Pengembalian |
|
||||||
Hasil |
Atau, WEAVE_ERROR apa pun yang ditampilkan saat mencoba terhubung.
|
Konektivitas
WEAVE_ERROR Connect( WeaveConnection *aConnection )
Menyelesaikan binding TCP dengan menyediakan koneksi yang lengkap.
Binding TCP yang baru diinisialisasi tidak dapat digunakan sebelum prosesnya selesai. Biasanya ini dilakukan sesuai permintaan ketika aplikasi mencoba menggunakan binding untuk mengirim pesan, tetapi juga dapat diselesaikan secara eksplisit dengan menyediakan koneksi Weave.
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Nilai Pengembalian |
|
Finalisasi
void Finalize( void )
"Batalkan penyelesaian" binding dan kosongkan.
Binding mungkin memiliki status yang memerlukan pembersihan, misalnya penutupan koneksi, yang ditangani oleh metode Uncomplete() selain status yang dihapus ke status awal dengan metode Free(). Metode ini, terutama demi kenyamanan, akan memanggil keduanya.
Lihat juga:Selesaikan(WEAVE_ERROR)
Finalisasi
void Finalize( WEAVE_ERROR aErr )
"Batalkan penyelesaian" binding dan kosongkan.
Binding mungkin memiliki status yang memerlukan pembersihan, misalnya penutupan koneksi, yang ditangani oleh metode Uncomplete() selain status yang dihapus ke status awal dengan metode Free(). Metode ini, terutama demi kenyamanan, akan memanggil keduanya.
Detail | |||
---|---|---|---|
Parameter |
|
Finalize(void)
Gratis
void Free( void )
Menghapus status binding.
Menampilkan semua status binding ke status aslinya tanpa syarat.
GetExchangeCtx
ExchangeContext * GetExchangeCtx( WeaveExchangeManager *aExchangeMgr, void *aAppState )
Membuat 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, kemudian, memanggil pengendali lapisan yang lebih tinggi saat binding gagal SETELAH selesai, yaitu setelah CompleteConfirm() dipanggil dengan status yang menunjukkan keberhasilan.
Detail | |||
---|---|---|---|
Parameter |
|
CompleteConfirm(StatusReport &aReport).
Inisiasi
WEAVE_ERROR Init( const uint64_t & aPeerNodeId )
Melakukan inisialisasi Binding hanya dengan ID node.
Hal ini menghasilkan binding dengan transport default yang dikonfigurasi.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Nilai Pengembalian |
|
Inisiasi
WEAVE_ERROR Init( const uint64_t & aPeerNodeId, uint8_t aTransport )
Melakukan inisialisasi objek Binding berdasarkan transpor dan ID peer.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Nilai Pengembalian |
|
Inisiasi
WEAVE_ERROR Init( const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode )
Lakukan inisialisasi objek Binding ke endpoint layanan.
Ini adalah cara Anda mengikat ke endpoint tertentu di layanan Nest. Binding jenis ini memerlukan proses penyelesaian multi-tahap, yang mungkin termasuk mengisi atau mengupdate cache direktori layanan lokal. Sebagian besar proses ini disembunyikan dari aplikasi, tetapi ini berarti bahwa error yang muncul kemudian dalam proses dapat dikirimkan, biasanya melalui callback "confirm" yang relevan, setelah - terkadang lama setelah - permintaan asli untuk menggunakan (dan menyelesaikan) binding.
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Nilai Pengembalian |
|
Inisiasi
WEAVE_ERROR Init( WeaveConnection *aConnection )
Lakukan inisialisasi objek Binding dengan WeaveConnection.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Nilai Pengembalian |
|
IsComplete
bool IsComplete( void )
Periksa apakah binding sudah selesai.
Detail | |
---|---|
Hasil |
benar jika lengkap, salah jika sebaliknya.
|
CompleteRequest(ProtocolEngine *aEngine)
IsFree
bool IsFree( void )
Cek adalah binding gratis.
"Gratis" dalam konteks ini berarti "memiliki ID node pembanding yang ditentukan". IsFree() harus dianggap memiliki makna "telah mengaktifkan Free() dan tidak digunakan sejak saat itu".
Detail | |
---|---|
Hasil |
true jika binding adalah bebas, false jika sebaliknya.
|
UncompleteRequest
void UncompleteRequest( void )
Menyebabkan binding tidak lengkap.
Pada dasarnya, binding harus dalam status "tidak lengkap" setelah metode ini dipanggil, tetapi, lebih halus, setiap status relevan yang tidak dimuat dalam binding itu sendiri, misalnya koneksi TCP, juga harus dibersihkan. Aplikasi dapat mempertimbangkan pemanggilan UncompleteRequest() sebagai bagian dari pembersihan jika terjadi error.
Lihat juga:UncompleteRequest(WEAVE_ERROR )
UncompleteRequest
void UncompleteRequest( WEAVE_ERROR aErr )
Menyebabkan binding tidak lengkap.
Pada dasarnya, binding harus dalam status "tidak lengkap" setelah metode ini dipanggil, tetapi, lebih halus, setiap status relevan yang tidak dimuat dalam binding itu sendiri, misalnya koneksi TCP, juga harus dibersihkan. Aplikasi dapat mempertimbangkan pemanggilan UncompleteRequest() sebagai bagian dari pembersihan jika terjadi error.
Detail | |||
---|---|---|---|
Parameter |
|
UncompleteRequest(void)
~Binding
virtual ~Binding( void )
Destruktor untuk objek Binding.
Menghapus semua status internal DAN, jika perlu, menutup koneksi terbuka.