Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.
Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.

nl:: Menenun:: Profil:: DataManagement_Legacy:: Mengikat

#include <src/lib/profiles/data-management/Legacy/Binding.h>

The Binding kelas mengelola negara komunikasi atas nama entitas aplikasi yang menggunakan Weave.

Ringkasan

Ketika sebuah aplikasi ingin menggunakan Weave untuk berkomunikasi dengan entitas jarak jauh, terdapat berbagai pilihan. The Binding kelas kandang pilihan ini dan mengaransemen mereka sedemikian rupa bahwa hal mudah mudah dan hal-hal yang lebih sulit adalah setidaknya penurut. Pilihan yang tercakup meliputi:

  • komunikasi UDP unicast dengan node rekan yang dikenal.
  • Siaran UDP dengan simpul "apa saja".
  • komunikasi WRMP unicast dengan node rekan yang dikenal.
  • Komunikasi TCP dengan node rekan yang dikenal.
  • Komunikasi TCP dengan titik akhir layanan yang dikenal menggunakan instance manajer layanan untuk menyiapkan segalanya.
  • Komunikasi TCP berdasarkan koneksi yang telah dibuat sebelumnya.

Konstruktor dan Destruktor

Binding (void)
Default constructor untuk Binding objek.
~Binding (void)
Destructor untuk Binding objek.

Tipe publik

@165 {
kState_Incomplete = 0,
kState_Completing = 1,
kState_Complete = 2
}
enum
Set Binding negara objek.

Atribut publik

mAuthMode
WeaveAuthMode
Mode otentikasi Weave yang akan digunakan.
mConnection
Pointer ke koneksi Weave yang sedang digunakan dalam binding ini.
mEngine
Sebuah pointer ke ProtocolEngine objek yang berkaitan dengan ini Binding .
mPeerNodeId
uint64_t
ID node 64-bit dari target pengikatan.
mServiceMgr
Pointer ke objek ServiceManager (opsional) untuk digunakan dalam menyelesaikan penjilidan ini.
mState
uint8_t
Saat Binding negara objek.
mTransport
uint8_t
Transportasi untuk digunakan dalam menyelesaikan ini Binding .

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 pengikatan.
Connect ( WeaveConnection *aConnection)
Selesaikan pengikatan TCP dengan menyediakan koneksi yang lengkap.
Finalize (void)
void
"Uncomplete" mengikat dan membebaskannya.
Finalize ( WEAVE_ERROR aErr)
void
"Uncomplete" mengikat dan membebaskannya.
Free (void)
void
Hapus status pengikatan.
GetExchangeCtx ( WeaveExchangeManager *aExchangeMgr, void *aAppState)
Menghasilkan ExchangeContext objek dari Binding .
IncompleteIndication ( StatusReport & aReport)
void
Menangani kegagalan pengikatan.
Init (const uint64_t & aPeerNodeId)
Menginisialisasi Binding hanya dengan node ID.
Init (const uint64_t & aPeerNodeId, uint8_t aTransport)
Menginisialisasi Binding objek berdasarkan rekan ID dan transportasi.
Init (const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode)
Menginisialisasi Binding objek ke endpoint layanan.
Init ( WeaveConnection *aConnection)
Menginisialisasi Binding objek dengan WeaveConnection .
IsComplete (void)
bool
Periksa apakah pengikatan selesai.
IsFree (void)
bool
Cek adalah pengikatan gratis.
UncompleteRequest (void)
void
Menyebabkan pengikatan menjadi tidak lengkap.
UncompleteRequest ( WEAVE_ERROR aErr)
void
Menyebabkan pengikatan menjadi tidak lengkap.

Tipe publik

@165

 @165

Set Binding negara objek.

Properti
kState_Complete

Negara dari Binding yang lengkap dan siap untuk digunakan.

kState_Completing

Negara dari Binding yang dalam proses diselesaikan.

kState_Incomplete

Awal (dan akhir) negara dari Binding .

Atribut publik

mAuthMode

WeaveAuthMode mAuthMode

Mode otentikasi Weave yang akan digunakan.

(BACA_HANYA)

Ini adalah mode otentikasi yang digunakan dalam semua komunikasi yang diatur oleh pengikatan ini.

mKoneksi

WeaveConnection * mConnection

Pointer ke koneksi Weave yang sedang digunakan dalam binding ini.

(HANYA BACA)

Binding TCP dapat diinisialisasi dengan koneksi langsung dari kelelawar atau mereka dapat mengalokasikan satu pada waktu penyelesaian.

mesin

ProtocolEngine * mEngine

Sebuah pointer ke ProtocolEngine objek yang berkaitan dengan ini Binding .

Pengikatan umumnya diselesaikan sehubungan 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 pengikatan.

(HANYA BACA)

Setiap Binding memiliki entitas target, yang diberi nama di sini. Selain ID simpul Weave, ini dapat memberi nama titik akhir layanan.

mLayananMgr

nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager * mServiceMgr

Pointer ke objek ServiceManager (opsional) untuk digunakan dalam menyelesaikan penjilidan ini.

(HANYA BACA)

Saat mengikat ke layanan Weave, ID titik akhir layanan 64-bit dapat diberikan pada waktu inisialisasi sebagai pengganti ID simpul Weave. Dalam hal ini, objek ServiceManager juga diperlukan untuk menyelesaikan pengikatan. Binding TCP atau WRMP normal tidak memerlukan objek ServiceManager.

mState

uint8_t mState

Saat Binding negara objek.

Hanya satu operasi "selesai" yang dapat berjalan pada satu waktu dan, bagaimanapun juga, jika Anda meminta untuk menyelesaikan penjilidan yang telah selesai, itu hanya akan segera memanggil fungsi konfirmasi. Variabel status di bawah melacak status saat ini dan bertindak sebagai penguncian.

mTransportasi

uint8_t mTransport

Transportasi untuk digunakan dalam menyelesaikan ini Binding .

(HANYA BACA)

Nilai yang mungkin untuk mTransport ditentukan di DMConstants.h.

Fungsi publik

Mengikat

 Binding(
  void
)

Default constructor untuk Binding objek.

Menghapus semua status internal.

SelesaiKonfirmasi

void CompleteConfirm(
  WeaveConnection *aConnection
)

Menangani konfirmasi permintaan pengikatan.

rincian
Parameter
[in] aConnection
Sebuah pointer ke aktif WeaveConnection dengan target yang mengikat.

SelesaiKonfirmasi

void CompleteConfirm(
  StatusReport & aReport
)

Menangani kegagalan permintaan pengikatan.

rincian
Parameter
[in] aReport
Referensi ke objek StatusReport yang menjelaskan kegagalan.

SelesaiKonfirmasi

void CompleteConfirm(
  void
)

Menangani konfirmasi permintaan pengikatan.

Permintaan Lengkap

WEAVE_ERROR CompleteRequest(
  ProtocolEngine *aEngine
)

Meminta penyelesaian pengikatan.

Penyelesaian mengikat, setidaknya untuk binding membutuhkan TCP, dilakukan sehubungan dengan tertentu ProtocolEngine objek, yang menyediakan akses ke sebuah contoh ExchangeManager.

rincian
Parameter
[in] aEngine
Sebuah pointer ke ProtocolEngine objek atas nama yang selesai sedang dilakukan.
Mengembalikan Nilai
WEAVE_NO_ERROR
Pada kesuksesan.
WEAVE_ERROR_INCORRECT_STATE
jika pengikatan sudah selesai.
WEAVE_ERROR_NO_MEMORY
Jika koneksi diperlukan dan tidak ada yang tersedia
Kembali
Jika tidak, setiap WEAVE_ERROR kembali ketika mencoba untuk terhubung.

Menghubung

WEAVE_ERROR Connect(
  WeaveConnection *aConnection
)

Selesaikan pengikatan TCP dengan menyediakan koneksi yang lengkap.

Pengikatan TCP yang baru diinisialisasi tidak dapat digunakan sampai selesai. Biasanya ini dilakukan sesuai permintaan ketika aplikasi mencoba menggunakan pengikatan untuk mengirim pesan tetapi juga dapat diselesaikan secara eksplisit dengan menyediakan koneksi Weave.

rincian
Parameter
[in] aConnection
Sebuah pointer ke WeaveConnection digunakan untuk melengkapi mengikat.
Mengembalikan Nilai
WEAVE_NO_ERROR
Pada kesuksesan.
WEAVE_ERROR_INCORRECT_STATE
Jika pengikatan sudah memiliki koneksi.
WEAVE_ERROR_INVALID_ARGUMENT
Jika koneksi NULL.

Menyelesaikan

void Finalize(
  void
)

"Uncomplete" mengikat dan membebaskannya.

Binding mungkin memiliki negara yang membutuhkan pembersihan, misalnya penutupan sambungan, yang ditangani dengan metode uncomplete () selain negara yang hanya dibersihkan ke keadaan awal oleh Gratis () metode. Metode ini, sebagian besar demi kenyamanan, memanggil keduanya.

Lihat juga:
Selesaikan(WEAVE_ERROR)

Menyelesaikan

void Finalize(
  WEAVE_ERROR aErr
)

"Uncomplete" mengikat dan membebaskannya.

Binding mungkin memiliki negara yang membutuhkan pembersihan, misalnya penutupan sambungan, yang ditangani dengan metode uncomplete () selain negara yang hanya dibersihkan ke keadaan awal oleh Gratis () metode. Metode ini, sebagian besar demi kenyamanan, memanggil keduanya.

rincian
Parameter
[in] aErr
Kode kesalahan ini menunjukkan penyebab permintaan ini. Jika bukan WEAVE_NO_ERROR, koneksi TCP dapat dibatalkan.
Lihat juga:
Selesaikan (batal)

Gratis

void Free(
  void
)

Hapus status pengikatan.

Kembalikan semua status pengikatan ke kondisi semula tanpa syarat.

Dapatkan ExchangeCtx

ExchangeContext * GetExchangeCtx(
  WeaveExchangeManager *aExchangeMgr,
  void *aAppState
)

Menghasilkan ExchangeContext objek dari Binding .

rincian
Parameter
[in] aExchangeMgr
Pointer ke manajer pertukaran untuk meminta konteks.
[in] aAppState
Penunjuk kosong ke objek status aplikasi untuk disimpan dalam konteks pertukaran untuk digunakan nanti.
Kembali
pointer ke ExchangeContext objek, atau NULL pada kegagalan.

Indikasi tidak lengkap

void IncompleteIndication(
  StatusReport & aReport
)

Menangani kegagalan pengikatan.

Metode ini dipanggil dan, pada gilirannya, memanggil layer yang lebih tinggi penangan ketika mengikat gagal setelah selesai, yaitu setelah CompleteConfirm () telah dipanggil dengan status yang menunjukkan keberhasilan.

rincian
Parameter
[in] aReport
Referensi ke StatusReport yang menjelaskan apa yang salah.
Lihat juga:
CompleteConfirm (StatusReport & aReport) .

init

WEAVE_ERROR Init(
  const uint64_t & aPeerNodeId
)

Menginisialisasi Binding hanya dengan node ID.

Ini menghasilkan pengikatan dengan transport default yang dikonfigurasi.

rincian
Parameter
[in] aPeerNodeId
Referensi ke ID 64-bit dari target pengikatan.
Mengembalikan Nilai
WEAVE_NO_ERROR
Pada kesuksesan.
WEAVE_ERROR_INVALID_ARGUMENT
Jika pengikatan kurang ditentukan.

init

WEAVE_ERROR Init(
  const uint64_t & aPeerNodeId,
  uint8_t aTransport
)

Menginisialisasi Binding objek berdasarkan rekan ID dan transportasi.

rincian
Parameter
[in] aPeerNodeId
Referensi ke pengidentifikasi simpul 64-bit dari target pengikatan.
[in] aTransport
Spesifikasi transportasi, dari WeaveTransportOption.
Mengembalikan Nilai
WEAVE_NO_ERROR
Pada kesuksesan.
WEAVE_ERROR_INVALID_ARGUMENT
Jika pengikatan kurang ditentukan.

init

WEAVE_ERROR Init(
  const uint64_t & aServiceEpt,
  WeaveServiceManager *aServiceMgr,
  WeaveAuthMode aAuthMode
)

Menginisialisasi Binding objek ke endpoint layanan.

Ini adalah cara Anda mengikat ke titik akhir tertentu pada layanan Nest. Pengikatan semacam ini memerlukan proses penyelesaian multi-tahap, yang mungkin termasuk mengisi atau memperbarui cache direktori layanan lokal. Untuk sebagian besar, proses ini tersembunyi dari aplikasi tetapi itu berarti bahwa kesalahan yang timbul kemudian dalam proses dapat disampaikan, biasanya melalui panggilan balik "konfirmasi" yang relevan, setelah - terkadang lama setelah - permintaan awal untuk menggunakan (dan menyelesaikan) mengikat.

rincian
Parameter
[in] aServiceEpt
Referensi ke pengidentifikasi 64-bit untuk titik akhir yang diminati Layanan Weave.
[in] aServiceMgr
Pointer ke instance manajer layanan untuk digunakan dalam mencari tingkat layanan dan menghubungkannya.
[in] aAuthMode
Mode otentikasi untuk digunakan dalam menghubungkan.
Mengembalikan Nilai
WEAVE_NO_ERROR
Pada kesuksesan.
WEAVE_ERROR_INVALID_ARGUMENT
Jika pengikatan kurang ditentukan.

init

WEAVE_ERROR Init(
  WeaveConnection *aConnection
)

Menginisialisasi Binding objek dengan WeaveConnection .

rincian
Parameter
[in] aConnection
Sebuah pointer ke WeaveConnection untuk digunakan sebagai dasar untuk mengikat ..
Mengembalikan Nilai
WEAVE_NO_ERROR
Pada kesuksesan.
WEAVE_ERROR_INVALID_ARGUMENT
Jika pengikatan kurang ditentukan.

Selesai

bool IsComplete(
  void
)

Periksa apakah pengikatan selesai.

rincian
Kembali
benar jika lengkap, salah jika tidak.
Lihat juga:
Permintaan Lengkap(Mesin Protokol *Mesin)

Gratis

bool IsFree(
  void
)

Cek adalah pengikatan gratis.

"Gratis" dalam konteks ini berarti, "memiliki ID node peer yang ditentukan". IsFree () harus dianggap sebagai berarti "telah Gratis () disebut di atasnya dan belum digunakan sejak".

rincian
Kembali
benar jika pengikatannya bebas, salah jika sebaliknya.

Permintaan Belum Selesai

void UncompleteRequest(
  void
)

Menyebabkan pengikatan menjadi tidak lengkap.

Pada dasarnya, suatu pengikatan akan berada dalam status "tidak lengkap" setelah metode ini dipanggil, tetapi secara lebih halus, setiap status relevan yang tidak terkandung dalam pengikatan itu sendiri, misalnya koneksi TCP, harus dibersihkan juga. Aplikasi dapat mempertimbangkan memanggil UncompleteRequest () sebagai bagian dari pembersihan pada kesalahan.

Lihat juga:
Permintaan Tidak Lengkap(WEAVE_ERROR )

Permintaan Belum Selesai

void UncompleteRequest(
  WEAVE_ERROR aErr
)

Menyebabkan pengikatan menjadi tidak lengkap.

Pada dasarnya, suatu pengikatan akan berada dalam status "tidak lengkap" setelah metode ini dipanggil, tetapi secara lebih halus, setiap status relevan yang tidak terkandung dalam pengikatan itu sendiri, misalnya koneksi TCP, harus dibersihkan juga. Aplikasi dapat mempertimbangkan memanggil UncompleteRequest () sebagai bagian dari pembersihan pada kesalahan.

rincian
Parameter
[in] aErr
Jika bukan WEAVE_NO_ERROR, koneksi yang ada, jika ada, akan dibatalkan alih-alih ditutup dengan baik.
Lihat juga:
Permintaan Tidak Lengkap (batal)

~Mengikat

virtual  ~Binding(
  void
)

Destructor untuk Binding objek.

Menghapus semua status internal DAN, jika perlu, menutup koneksi terbuka.