nl:: Weave:: Profiles:: DataManagement_Legacy:: ProtocolEngine
Ini adalah class abstrak.
#include <src/lib/profiles/data-management/Legacy/ProtocolEngine.h>
Class mesin protokol WDM.
Ringkasan
Entitas pengelolaan data, klien atau penayang, memiliki komponen mesin protokol dan komponen pengelola data. Class abstrak ini mewakili fitur umum mesin protokol.
Inheritance
Subclass yang Dikenal Langsung:nl::Weave::Profiles::DataManagement_Legacy::DMClient
nl::Weave::Profiles::DataManagement_Legacy::DMPublisher
Konstruktor dan Destruktor |
|
---|---|
ProtocolEngine(void)
|
|
~ProtocolEngine(void)
|
Atribut yang dilindungi |
|
---|---|
mBindingTable[kBindingTableSize]
|
ProtocolEngine memiliki tabel binding yang, jika mesin bertanggung jawab atas hal selain hanya menerima notifikasi siaran, mungkin harus berisi setidaknya satu entri.
|
mExchangeMgr
|
|
mResponseTimeout
|
uint32_t
|
mTransactionTable[kTransactionTableSize]
|
Fungsi publik |
|
---|---|
BindConfirm(Binding *aBinding)
|
virtual WEAVE_ERROR
Menangani konfirmasi bahwa permintaan binding telah berhasil diselesaikan.
|
BindConfirm(Binding *aBinding, StatusReport & aReport)
|
virtual WEAVE_ERROR
Menangani konfirmasi bahwa permintaan binding gagal.
|
BindRequest(const uint64_t & aPeerNodeId, uint8_t aTransport)
|
Minta binding menggunakan ID node pembanding dan penentu transpor yang dikenal.
|
BindRequest(const uint64_t & aPeerNodeId)
|
Mengikat ke pembanding yang dikenal menggunakan transpor default.
|
BindRequest(nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode)
|
|
BindRequest(WeaveConnection *aConnection)
|
Minta binding menggunakan koneksi Weave yang aktif.
|
IncompleteIndication(Binding *aBinding, StatusReport & aReport)
|
virtual void
Menangani indikasi bahwa binding gagal.
|
IncompleteIndication(const uint64_t & aPeerNodeId, StatusReport & aReport)=0
|
virtual void
Menangani indikasi bahwa binding 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 binding diurungkan dan dihapus dari tabel binding.
|
UnbindRequest(const uint64_t & aPeerNodeId, WEAVE_ERROR aErr)
|
void
Meminta agar binding diurungkan dan dihapus dari tabel binding.
|
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)
|
Class |
|
---|---|
nl:: |
Atribut yang dilindungi
mBindingTable
Binding mBindingTable[kBindingTableSize]
ProtocolEngine memiliki tabel binding yang, jika mesin bertanggung jawab atas hal selain hanya menerima notifikasi siaran, mungkin harus berisi setidaknya satu entri.
Binding umumnya diindeks oleh ID node. Artinya, setiap mesin hanya dapat memiliki satu binding ke endpoint layanan tertentu.
Spesifikasi WDM memiliki gagasan "pengikatan default" yang merupakan tempat tujuan pesan jika tidak ada tujuan eksplisit yang disediakan. Ini sebagian besar akan digunakan di perangkat yang sangat sederhana dengan satu binding atau sejumlah kecil binding, dan untuk tujuan lain, hanya akan menjadi binding pertama yang dibuat.
mExchangeMgr
WeaveExchangeManager * mExchangeMgr
mResponseTimeout
uint32_t mResponseTimeout
mTransactionTable
TransactionTableEntry mTransactionTable[kTransactionTableSize]
Fungsi publik
BindConfirm
virtual WEAVE_ERROR BindConfirm( Binding *aBinding )
Menangani konfirmasi bahwa permintaan binding telah berhasil diselesaikan.
Setelah binding selesai, mesin protokol akan melewati tabel transaksi dan memulai transaksi apa pun yang bergantung pada binding tersebut.
Detail | |||
---|---|---|---|
Parameter |
|
||
Hasil |
WEAVE_NO_ERROR Jika berhasil. Jika tidak, tampilkan WEAVE_ERROR yang menunjukkan ketidakmampuan untuk memulai transaksi.
|
BindConfirm
virtual WEAVE_ERROR BindConfirm( Binding *aBinding, StatusReport & aReport )
Menangani konfirmasi bahwa permintaan binding gagal.
Jika permintaan binding gagal, mesin protokol harus melewati tabel transaksi dan menggagalkan transaksi apa pun bergantung pada binding.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Hasil |
BindRequest
WEAVE_ERROR BindRequest( const uint64_t & aPeerNodeId, uint8_t aTransport )
Minta binding menggunakan ID node pembanding dan penentu transpor yang dikenal.
Dengan mempertimbangkan ID node peer dan spesifikasi transpor, permintaan ini akan menyiapkan binding ke peer tersebut. Bidding akan memerlukan penyelesaian tambahan HANYA jika transmisinya adalah TCP. Jika binding ke peer sudah ada, binding tersebut akan digunakan kembali.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Hasil |
WEAVE_NO_ERROR jika berhasil atau WEAVE_ERROR_NO_MEMORY jika tabel binding penuh. Jika tidak, tampilkan WEAVE_ERROR yang menunjukkan kegagalan dalam menginisialisasi binding.
|
WeaveTransportOption
BindRequest
WEAVE_ERROR BindRequest( const uint64_t & aPeerNodeId )
Mengikat ke pembanding yang dikenal menggunakan transpor default.
Detail | |||
---|---|---|---|
Parameter |
|
||
Hasil |
WEAVE_NO_ERROR Jika berhasil. Jika tidak, tampilkan WEAVE_ERROR yang menunjukkan kegagalan operasi binding.
|
BindRequest
WEAVE_ERROR BindRequest( nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode )
BindRequest
WEAVE_ERROR BindRequest( WeaveConnection *aConnection )
Minta binding menggunakan koneksi Weave yang aktif.
Binding juga dapat dibuat menggunakan koneksi terbuka yang sudah ada. Perhatikan bahwa binding yang dibuat dengan cara ini tidak memerlukan penyelesaian tambahan.
Detail | |||
---|---|---|---|
Parameter |
|
||
Hasil |
WEAVE_NO_ERROR jika berhasil atau WEAVE_ERROR_NO_MEMORY jika tabel binding penuh. Jika tidak, akan menampilkan error yang mencerminkan kegagalan untuk menginisialisasi binding.
|
IncompleteIndication
virtual void IncompleteIndication( Binding *aBinding, StatusReport & aReport )
Menangani indikasi bahwa binding gagal.
Ketika binding menjadi tidak lengkap, yaitu ketika koneksi ditutup untuk binding TCP, mesin protokol harus menggagalkan transaksi apa pun yang bergantung padanya, termasuk memanggil pengendali statusnya. Selain itu, indikasi yang tidak lengkap akan diteruskan ke objek superclass mana pun yang menerapkan bentuk alternatif metode ini yang menggunakan ID pembanding.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
IncompleteIndication
virtual void IncompleteIndication( const uint64_t & aPeerNodeId, StatusReport & aReport )=0
Menangani indikasi bahwa binding telah menjadi tidak lengkap.
Lapisan lebih tinggi yang ingin diberi tahu tentang kegagalan binding harus menggunakan metode ini, yang hanya meneruskan ID pembanding bersama dengan laporan status. Bahkan, karena metode ini kekosongan virtual, subclass DMClient atau DMPublisher harus menyediakan implementasi.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
Init
virtual WEAVE_ERROR Init( WeaveExchangeManager *aExchangeMgr )
Init
virtual WEAVE_ERROR Init( WeaveExchangeManager *aExchangeMgr, uint32_t aResponseTimeout )
ProtocolEngine
ProtocolEngine( void )
UnbindRequest
void UnbindRequest( const uint64_t & aPeerNodeId )
Meminta agar binding diurungkan dan dihapus dari tabel binding.
Saat binding "tidak terikat" transaksi apa pun yang saat ini bergantung pada {i>cloud<i} itu juga harus dihapus. Metode ini menyelesaikan semua transaksi dengan binding ini secara otomatis.
Detail | |||
---|---|---|---|
Parameter |
|
UnbindRequest(const uint64_t, WEAVE_ERROR)
UnbindRequest
void UnbindRequest( const uint64_t & aPeerNodeId, WEAVE_ERROR aErr )
Meminta agar binding diurungkan dan dihapus dari tabel binding.
Saat binding "tidak terikat" transaksi apa pun yang saat ini bergantung pada {i>cloud<i} itu juga harus dihapus. Metode ini menyelesaikan semua transaksi dengan binding ini secara otomatis.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
UnbindRequest(const uint64_t)
~ProtocolEngine
virtual ~ProtocolEngine( void )
Fungsi yang dilindungi
Hapus
void Clear( void )
ClearBindingTable
void ClearBindingTable( void )
ClearTransactionTable
void ClearTransactionTable( void )
DequeueTransaction
void DequeueTransaction( DMTransaction *aTransaction )
EnqueueTransaction
WEAVE_ERROR EnqueueTransaction( DMTransaction *aTransaction, Binding *aBinding )
EnqueueTransaction
WEAVE_ERROR EnqueueTransaction( DMTransaction *aTransaction )
FailTransactions
bool FailTransactions( Binding *aBinding, StatusReport & aReport )
Finalisasi
virtual void Finalize( void )
FinalizeBindingTable
void FinalizeBindingTable( void )
FinalizeTransactionTable
void FinalizeTransactionTable( void )
FinalizeTransactions
void FinalizeTransactions( Binding *aBinding )
FromExchangeCtx
Binding * FromExchangeCtx( ExchangeContext *aExchangeCtx )
GetBinding
Binding * GetBinding( const uint64_t & aPeerNodeId )
NewBinding
Binding * NewBinding( void )
StartTransaction
WEAVE_ERROR StartTransaction( DMTransaction *aTransaction, Binding *aBinding )