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)
GetBinding(const uint64_t & aPeerNodeId)
NewBinding(void)
StartTransaction(DMTransaction *aTransaction, Binding *aBinding)
StartTransaction(DMTransaction *aTransaction)
StatusResponse(ExchangeContext *aExchangeCtx, StatusReport & aStatus)

Class

nl::Weave::Profiles::DataManagement_Legacy::ProtocolEngine::DMTransaction

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
[in] aBinding
Pointer ke binding yang telah selesai.
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
[in] aBinding
Pointer ke binding yang gagal.
[in] aReport
Referensi ke objek StatusReport yang menjelaskan alasan kegagalan.
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
[in] aPeerNodeId
Referensi ke ID node 64-bit dari entity peer yang merupakan target binding.
[in] aTransport
Transportasi yang akan digunakan.
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.
Lihat juga:
WeaveTransportOption

BindRequest

WEAVE_ERROR BindRequest(
  const uint64_t & aPeerNodeId
)

Mengikat ke pembanding yang dikenal menggunakan transpor default.

Detail
Parameter
[in] aPeerNodeId
Referensi ke ID node 64-bit dari entity peer yang merupakan target binding.
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
[in] aConnection
Pointer ke koneksi Weave yang akan digunakan oleh binding.
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
[in] aBinding
Pointer ke binding yang gagal.
[in] aReport
Referensi ke objek StatusReport yang menjelaskan alasan kegagalan.

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
[in] aPeerNodeId
Referensi ke ID 64-bit node peer atau endpoint layanan yang merupakan target binding yang gagal.
[in] aReport
Referensi ke objek StatusReport yang menjelaskan alasan kegagalan.

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
[in] aPeerNodeId
Referensi ke ID node 64-bit atau endpoint layanan yang mengidentifikasi binding.
Lihat juga:
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
[in] aPeerNodeId
Referensi ke ID node 64-bit atau endpoint layanan yang mengidentifikasi binding.
[in] aErr
WEAVE_NO_ERROR jika tidak ada alasan khusus untuk permintaan pelepasan ini, jika tidak, penyebab error akan diturunkan.
Lihat juga:
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
)

StartTransaction

WEAVE_ERROR StartTransaction(
  DMTransaction *aTransaction
)

StatusResponse

WEAVE_ERROR StatusResponse(
  ExchangeContext *aExchangeCtx,
  StatusReport & aStatus
)