nl:: Menenun:: Profil:: DataManagement_Legacy:: Mesin Protokol
Ini adalah kelas abstrak.#include <src/lib/profiles/data-management/Legacy/ProtocolEngine.h>
Kelas mesin protokol WDM.
Ringkasan
Entitas manajemen data, klien atau penerbit, memiliki komponen mesin protokol dan komponen pengelola data. Kelas abstrak ini mewakili fitur umum dari mesin protokol.
Warisan
Subclass yang Diketahui Langsung:nl::Menenun::Profil::DataManagement_Legacy::DMClient
nl::Menenun::Profil::DataManagement_Legacy::DMPublisher
Konstruktor dan Destruktor | |
---|---|
ProtocolEngine (void) | |
~ProtocolEngine (void) |
Atribut yang dilindungi | |
---|---|
mBindingTable [kBindingTableSize] | The ProtocolEngine memiliki meja yang mengikat bahwa, jika mesin akan bertanggung jawab untuk apa pun di luar hanya menerima pemberitahuan siaran, mungkin perlu mengandung setidaknya satu entri. |
mExchangeMgr | |
mResponseTimeout | uint32_t |
mTransactionTable [kTransactionTableSize] |
Fungsi publik | |
---|---|
BindConfirm ( Binding *aBinding) | virtual WEAVE_ERROR Menangani konfirmasi bahwa permintaan pengikatan telah berhasil diselesaikan. |
BindConfirm ( Binding *aBinding, StatusReport & aReport) | virtual WEAVE_ERROR Menangani konfirmasi bahwa permintaan pengikatan telah gagal. |
BindRequest (const uint64_t & aPeerNodeId, uint8_t aTransport) | Minta pengikatan menggunakan ID node peer yang diketahui dan penentu transport. |
BindRequest (const uint64_t & aPeerNodeId) | Ikat ke rekan yang dikenal menggunakan transport default. |
BindRequest ( nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode) | |
BindRequest ( WeaveConnection *aConnection) | Minta pengikatan menggunakan koneksi Weave aktif. |
IncompleteIndication ( Binding *aBinding, StatusReport & aReport) | virtual void Menangani indikasi bahwa pengikatan telah gagal. |
IncompleteIndication (const uint64_t & aPeerNodeId, StatusReport & aReport)=0 | virtual void Menangani indikasi bahwa pengikatan telah menjadi tidak lengkap. |
Init ( WeaveExchangeManager *aExchangeMgr) | virtual WEAVE_ERROR |
Init ( WeaveExchangeManager *aExchangeMgr, uint32_t aResponseTimeout) | virtual WEAVE_ERROR |
UnbindRequest (const uint64_t & aPeerNodeId) | void Meminta agar pengikatan dibatalkan dan dihapus dari tabel pengikatan. |
UnbindRequest (const uint64_t & aPeerNodeId, WEAVE_ERROR aErr) | void Meminta agar pengikatan dibatalkan dan dihapus dari tabel pengikatan. |
Fungsi yang dilindungi | |
---|---|
Clear (void) | void |
ClearBindingTable (void) | void |
ClearTransactionTable (void) | void |
DequeueTransaction ( DMTransaction *aTransaction) | void |
EnqueueTransaction ( DMTransaction *aTransaction, Binding *aBinding) | |
EnqueueTransaction ( DMTransaction *aTransaction) | |
FailTransactions ( Binding *aBinding, StatusReport & aReport) | bool |
Finalize (void) | virtual void |
FinalizeBindingTable (void) | void |
FinalizeTransactionTable (void) | void |
FinalizeTransactions ( Binding *aBinding) | void |
FromExchangeCtx ( ExchangeContext *aExchangeCtx) | Binding * |
GetBinding (const uint64_t & aPeerNodeId) | Binding * |
NewBinding (void) | Binding * |
StartTransaction ( DMTransaction *aTransaction, Binding *aBinding) | |
StartTransaction ( DMTransaction *aTransaction) | |
StatusResponse ( ExchangeContext *aExchangeCtx, StatusReport & aStatus) |
Kelas | |
---|---|
nl :: Weave :: Profil :: DataManagement_Legacy :: ProtocolEngine :: DMTransaction |
Atribut yang dilindungi
mBindingTabel
Binding mBindingTable[kBindingTableSize]
The ProtocolEngine memiliki meja yang mengikat bahwa, jika mesin akan bertanggung jawab untuk apa pun di luar hanya menerima pemberitahuan siaran, mungkin perlu mengandung setidaknya satu entri.
Binding umumnya diindeks oleh ID node. Artinya, setiap mesin hanya dapat memiliki satu ikatan ke titik akhir layanan tertentu.
Spesifikasi WDM memiliki gagasan tentang "pengikatan default" yang merupakan tempat pesan pergi jika tidak ada tujuan eksplisit yang diberikan. Ini sebagian besar akan digunakan dalam perangkat yang sangat sederhana dengan ikatan tunggal atau sejumlah kecil ikatan dan, untuk tujuan lain, hanya akan menjadi ikatan pertama yang terbentuk.
mExchangeMgr
WeaveExchangeManager * mExchangeMgr
mResponseTimeout
uint32_t mResponseTimeout
mTransaksiTable
TransactionTableEntry mTransactionTable[kTransactionTableSize]
Fungsi publik
MengikatKonfirmasi
virtual WEAVE_ERROR BindConfirm( Binding *aBinding )
Menangani konfirmasi bahwa permintaan pengikatan telah berhasil diselesaikan.
Setelah pengikatan selesai, mesin protokol melewati tabel transaksi dan memulai transaksi apa pun yang bergantung pada pengikatan itu.
rincian | |||
---|---|---|---|
Parameter |
| ||
Kembali | WEAVE_NO_ERROR Pada keberhasilan. Jika tidak mengembalikan WEAVE_ERROR mencerminkan ketidakmampuan untuk memulai transaksi. |
MengikatKonfirmasi
virtual WEAVE_ERROR BindConfirm( Binding *aBinding, StatusReport & aReport )
Menangani konfirmasi bahwa permintaan pengikatan telah gagal.
Ketika permintaan pengikatan gagal, mesin protokol harus melalui tabel transaksi dan gagal setiap transaksi tergantung pada pengikatan.
rincian | |||||
---|---|---|---|---|---|
Parameter |
| ||||
Kembali |
BindRequest
WEAVE_ERROR BindRequest( const uint64_t & aPeerNodeId, uint8_t aTransport )
Minta pengikatan menggunakan ID node peer yang dikenal dan penentu transport.
Diberikan ID node peer dan spesifikasi transport, permintaan ini menyiapkan pengikatan ke peer tersebut. Penawaran akan membutuhkan penyelesaian tambahan HANYA jika transportasi adalah TCP. Jika pengikatan ke rekan sudah ada, itu digunakan kembali.
rincian | |||||
---|---|---|---|---|---|
Parameter |
| ||||
Kembali | WEAVE_NO_ERROR pada keberhasilan atau WEAVE_ERROR_NO_MEMORY jika tabel yang mengikat penuh. Jika tidak mengembalikan WEAVE_ERROR mencerminkan kegagalan untuk menginisialisasi mengikat. |
WeaveTransportOption
BindRequest
WEAVE_ERROR BindRequest( const uint64_t & aPeerNodeId )
Ikat ke rekan yang dikenal menggunakan transport default.
rincian | |||
---|---|---|---|
Parameter |
| ||
Kembali | WEAVE_NO_ERROR Pada keberhasilan. Jika tidak mengembalikan WEAVE_ERROR mencerminkan kegagalan operasi mengikat. |
BindRequest
WEAVE_ERROR BindRequest( nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode )
BindRequest
WEAVE_ERROR BindRequest( WeaveConnection *aConnection )
Minta pengikatan menggunakan koneksi Weave aktif.
Pengikatan juga dapat dibuat menggunakan koneksi yang sudah ada dan terbuka. Perhatikan bahwa binding yang dibuat dengan cara ini tidak memerlukan penyelesaian tambahan.
rincian | |||
---|---|---|---|
Parameter |
| ||
Kembali | WEAVE_NO_ERROR pada keberhasilan atau WEAVE_ERROR_NO_MEMORY jika tabel yang mengikat penuh. Jika tidak, kembalikan kesalahan yang mencerminkan kegagalan untuk menginisialisasi pengikatan. |
Indikasi tidak lengkap
virtual void IncompleteIndication( Binding *aBinding, StatusReport & aReport )
Menangani indikasi bahwa pengikatan telah gagal.
Ketika pengikatan menjadi tidak lengkap, yaitu ketika koneksi ditutup untuk pengikatan TCP, mesin protokol harus menggagalkan setiap transaksi yang bergantung padanya, termasuk memanggil penangan status mereka. Juga, indikasi yang tidak lengkap diteruskan ke objek superkelas mana pun yang mengimplementasikan bentuk alternatif dari metode ini yang menggunakan ID rekan.
rincian | |||||
---|---|---|---|---|---|
Parameter |
|
Indikasi tidak lengkap
virtual void IncompleteIndication( const uint64_t & aPeerNodeId, StatusReport & aReport )=0
Menangani indikasi bahwa pengikatan telah menjadi tidak lengkap.
Lapisan yang lebih tinggi yang ingin diberi tahu tentang kegagalan pengikatan harus menggunakan metode ini, yang hanya meneruskan ID rekan bersama dengan laporan status. Bahkan, karena metode ini tidak berlaku virtual, setiap DMClient atau DMPublisher subclass harus menyediakan sebuah implementasi.
rincian | |||||
---|---|---|---|---|---|
Parameter |
|
init
virtual WEAVE_ERROR Init( WeaveExchangeManager *aExchangeMgr )
init
virtual WEAVE_ERROR Init( WeaveExchangeManager *aExchangeMgr, uint32_t aResponseTimeout )
Mesin Protokol
ProtocolEngine( void )
UnbindRequest
void UnbindRequest( const uint64_t & aPeerNodeId )
Meminta agar pengikatan dibatalkan dan dihapus dari tabel pengikatan.
Ketika pengikatan "tidak terikat" setiap transaksi yang saat ini bergantung padanya harus dihapus juga. Metode ini menyelesaikan semua transaksi dengan pengikatan ini secara otomatis.
rincian | |||
---|---|---|---|
Parameter |
|
UnbindRequest(const uint64_t, WEAVE_ERROR)
UnbindRequest
void UnbindRequest( const uint64_t & aPeerNodeId, WEAVE_ERROR aErr )
Meminta agar pengikatan dibatalkan dan dihapus dari tabel pengikatan.
Ketika pengikatan "tidak terikat" setiap transaksi yang saat ini bergantung padanya harus dihapus juga. Metode ini menyelesaikan semua transaksi dengan pengikatan ini secara otomatis.
rincian | |||||
---|---|---|---|---|---|
Parameter |
|
UnbindRequest(const uint64_t)
~Mesin Protokol
virtual ~ProtocolEngine( void )
Fungsi yang dilindungi
Bersih
void Clear( void )
ClearBindingTable
void ClearBindingTable( void )
HapusTransaksiTabel
void ClearTransactionTable( void )
DequeueTransaksi
void DequeueTransaction( DMTransaction *aTransaction )
EnqueueTransaksi
WEAVE_ERROR EnqueueTransaction( DMTransaction *aTransaction, Binding *aBinding )
EnqueueTransaksi
WEAVE_ERROR EnqueueTransaction( DMTransaction *aTransaction )
Transaksi Gagal
bool FailTransactions( Binding *aBinding, StatusReport & aReport )
Menyelesaikan
virtual void Finalize( void )
SelesaikanBindingTable
void FinalizeBindingTable( void )
SelesaikanTransactionTable
void FinalizeTransactionTable( void )
Selesaikan Transaksi
void FinalizeTransactions( Binding *aBinding )
Dari ExchangeCtx
Binding * FromExchangeCtx( ExchangeContext *aExchangeCtx )
Dapatkan Pengikatan
Binding * GetBinding( const uint64_t & aPeerNodeId )
BaruMengikat
Binding * NewBinding( void )
Mulai Transaksi
WEAVE_ERROR StartTransaction( DMTransaction *aTransaction, Binding *aBinding )
Mulai Transaksi
WEAVE_ERROR StartTransaction( DMTransaction *aTransaction )
StatusRespon
WEAVE_ERROR StatusResponse( ExchangeContext *aExchangeCtx, StatusReport & aStatus )