nl:: Weave:: Profiles:: DataManagement_Legacy:: ProtocolEngine
Đây là lớp trừu tượng.
#include <src/lib/profiles/data-management/Legacy/ProtocolEngine.h>
Lớp công cụ giao thức WDM.
Tóm tắt
Pháp nhân quản lý dữ liệu, ứng dụng hoặc nhà xuất bản có thành phần công cụ giao thức và thành phần trình quản lý dữ liệu. Lớp trừu tượng này đại diện cho các tính năng phổ biến của công cụ giao thức.
Tính kế thừa
Lớp con đã biết trực tiếp:nl::Weave::Profiles::DataManagement_Legacy::DMClient
nl::Weave::Profiles::DataManagement_Legacy::DMPublisher
Hàm khởi tạo và hàm phá |
|
---|---|
ProtocolEngine(void)
|
|
~ProtocolEngine(void)
|
Thuộc tính được bảo vệ |
|
---|---|
mBindingTable[kBindingTableSize]
|
ProtocolEngine có một bảng liên kết. Nếu công cụ chịu trách nhiệm về mọi việc ngoài việc nhận thông báo phát đi, thì có thể cần chứa ít nhất một mục nhập.
|
mExchangeMgr
|
|
mResponseTimeout
|
uint32_t
|
mTransactionTable[kTransactionTableSize]
|
Hàm công khai |
|
---|---|
BindConfirm(Binding *aBinding)
|
virtual WEAVE_ERROR
Xử lý xác nhận rằng một yêu cầu liên kết đã hoàn tất thành công.
|
BindConfirm(Binding *aBinding, StatusReport & aReport)
|
virtual WEAVE_ERROR
Xử lý xác nhận rằng yêu cầu liên kết không thành công.
|
BindRequest(const uint64_t & aPeerNodeId, uint8_t aTransport)
|
Yêu cầu liên kết bằng cách sử dụng mã nhận dạng nút ngang hàng đã biết và thông số truyền tải.
|
BindRequest(const uint64_t & aPeerNodeId)
|
Liên kết với một ứng dụng ngang hàng đã biết bằng mạng truyền tải mặc định.
|
BindRequest(nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode)
|
|
BindRequest(WeaveConnection *aConnection)
|
Yêu cầu liên kết bằng cách sử dụng kết nối Weave đang hoạt động.
|
IncompleteIndication(Binding *aBinding, StatusReport & aReport)
|
virtual void
Xử lý chỉ báo cho biết liên kết không thành công.
|
IncompleteIndication(const uint64_t & aPeerNodeId, StatusReport & aReport)=0
|
virtual void
Xử lý chỉ báo cho biết mối liên kết chưa hoàn chỉnh.
|
Init(WeaveExchangeManager *aExchangeMgr)
|
virtual WEAVE_ERROR
|
Init(WeaveExchangeManager *aExchangeMgr, uint32_t aResponseTimeout)
|
virtual WEAVE_ERROR
|
UnbindRequest(const uint64_t & aPeerNodeId)
|
void
Yêu cầu huỷ liên kết và xoá liên kết khỏi bảng liên kết.
|
UnbindRequest(const uint64_t & aPeerNodeId, WEAVE_ERROR aErr)
|
void
Yêu cầu huỷ liên kết và xoá liên kết khỏi bảng liên kết.
|
Hàm được bảo vệ |
|
---|---|
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)
|
Lớp |
|
---|---|
nl:: |
Thuộc tính được bảo vệ
mBindingTable
Binding mBindingTable[kBindingTableSize]
ProtocolEngine có một bảng liên kết. Nếu công cụ chịu trách nhiệm về mọi việc ngoài việc nhận thông báo phát đi, thì có thể cần chứa ít nhất một mục nhập.
Các liên kết thường được lập chỉ mục theo mã nhận dạng nút. Tức là mỗi công cụ chỉ có thể có một liên kết với một điểm cuối của dịch vụ nhất định.
Thông số kỹ thuật WDM có khái niệm "liên kết mặc định", tức là thông báo vị trí sẽ được gửi đi nếu không có đích rõ ràng nào được cung cấp. Loại này chủ yếu sẽ được dùng trong các thiết bị rất đơn giản, chỉ có một liên kết duy nhất hoặc một số ít liên kết, vì các mục đích khác, đây sẽ chỉ là liên kết đầu tiên được tạo.
mExchangeMgr
WeaveExchangeManager * mExchangeMgr
mResponseTimeout
uint32_t mResponseTimeout
mTransactionTable
TransactionTableEntry mTransactionTable[kTransactionTableSize]
Hàm công khai
BindConfirm
virtual WEAVE_ERROR BindConfirm( Binding *aBinding )
Xử lý xác nhận rằng một yêu cầu liên kết đã hoàn tất thành công.
Sau khi liên kết xong, công cụ giao thức sẽ chuyển sang bảng giao dịch và bắt đầu mọi giao dịch phụ thuộc vào liên kết đó.
Thông tin chi tiết | |||
---|---|---|---|
Thông số |
|
||
Trả về |
WEAVE_NO_ERROR Khi thành công. Nếu không, hãy trả về WEAVE_ERROR cho biết rằng không thể bắt đầu giao dịch.
|
BindConfirm
virtual WEAVE_ERROR BindConfirm( Binding *aBinding, StatusReport & aReport )
Xử lý xác nhận rằng yêu cầu liên kết không thành công.
Khi yêu cầu liên kết không thành công, công cụ giao thức phải đi qua bảng giao dịch và không thực hiện được giao dịch nào phụ thuộc vào liên kết.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Thông số |
|
||||
Trả về |
BindRequest
WEAVE_ERROR BindRequest( const uint64_t & aPeerNodeId, uint8_t aTransport )
Yêu cầu liên kết bằng cách sử dụng mã nhận dạng nút ngang hàng đã biết và thông số truyền tải.
Khi có một mã nút ngang hàng và thông số truyền tải, yêu cầu này sẽ thiết lập một liên kết với ứng dụng ngang hàng đó. Việc đặt giá thầu CHỈ yêu cầu hoàn tất bổ sung nếu truyền tải là TCP. Nếu đã có liên kết với ứng dụng ngang hàng, thì liên kết đó sẽ được sử dụng lại.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Thông số |
|
||||
Trả về |
WEAVE_NO_ERROR khi thành công hoặc WEAVE_ERROR_NO_MEMORY nếu bảng liên kết đầy. Nếu không, hãy trả về WEAVE_ERROR cho biết không thể khởi tạo liên kết.
|
WeaveTransportOption
BindRequest
WEAVE_ERROR BindRequest( const uint64_t & aPeerNodeId )
Liên kết với một ứng dụng ngang hàng đã biết bằng mạng truyền tải mặc định.
Thông tin chi tiết | |||
---|---|---|---|
Thông số |
|
||
Trả về |
WEAVE_NO_ERROR Khi thành công. Nếu không, hãy trả về WEAVE_ERROR cho biết hoạt động liên kết không thành công.
|
BindRequest
WEAVE_ERROR BindRequest( nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode )
BindRequest
WEAVE_ERROR BindRequest( WeaveConnection *aConnection )
Yêu cầu liên kết bằng cách sử dụng kết nối Weave đang hoạt động.
Liên kết cũng có thể được thiết lập bằng kết nối hiện có và đang mở. Xin lưu ý rằng các liên kết được thiết lập theo cách này không yêu cầu hoàn tất bổ sung.
Thông tin chi tiết | |||
---|---|---|---|
Thông số |
|
||
Trả về |
WEAVE_NO_ERROR khi thành công hoặc WEAVE_ERROR_NO_MEMORY nếu bảng liên kết đầy. Nếu không, hãy trả về lỗi cho biết không khởi tạo được liên kết.
|
IncompleteIndication
virtual void IncompleteIndication( Binding *aBinding, StatusReport & aReport )
Xử lý chỉ báo cho biết liên kết không thành công.
Khi liên kết trở thành chưa hoàn chỉnh, tức là khi kết nối bị đóng đối với liên kết TCP, công cụ giao thức phải thực hiện không thành công bất kỳ giao dịch nào phụ thuộc vào liên kết đó, bao gồm cả việc gọi trình xử lý trạng thái. Ngoài ra, chỉ báo không đầy đủ sẽ được truyền đến mọi đối tượng lớp cao cấp triển khai dạng thay thế của phương thức này mà nhận mã nhận dạng ngang hàng.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Thông số |
|
IncompleteIndication
virtual void IncompleteIndication( const uint64_t & aPeerNodeId, StatusReport & aReport )=0
Xử lý chỉ báo cho biết mối liên kết chưa hoàn chỉnh.
Các lớp cao hơn muốn được thông báo về lỗi liên kết nên sử dụng phương thức này. Phương thức này chỉ chuyển mã nhận dạng ứng dụng ngang hàng cùng với báo cáo trạng thái. Trên thực tế, vì phương thức này không có giá trị ảo, nên mọi lớp con DMClient hoặc DMPublisher đều phải cung cấp phương thức triển khai.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Thông số |
|
Bắt đầu
virtual WEAVE_ERROR Init( WeaveExchangeManager *aExchangeMgr )
Bắt đầu
virtual WEAVE_ERROR Init( WeaveExchangeManager *aExchangeMgr, uint32_t aResponseTimeout )
ProtocolEngine
ProtocolEngine( void )
UnbindRequest
void UnbindRequest( const uint64_t & aPeerNodeId )
Yêu cầu huỷ liên kết và xoá liên kết khỏi bảng liên kết.
Khi mối liên kết "không bị ràng buộc", mọi giao dịch hiện đang phụ thuộc vào mối liên kết đó cũng nên bị xoá. Phương thức này sẽ tự động hoàn thành tất cả giao dịch với mối liên kết này.
Thông tin chi tiết | |||
---|---|---|---|
Thông số |
|
UnbindRequest(const uint64_t, WEAVE_ERROR)
UnbindRequest
void UnbindRequest( const uint64_t & aPeerNodeId, WEAVE_ERROR aErr )
Yêu cầu huỷ liên kết và xoá liên kết khỏi bảng liên kết.
Khi mối liên kết "không bị ràng buộc", mọi giao dịch hiện đang phụ thuộc vào mối liên kết đó cũng nên bị xoá. Phương thức này sẽ tự động hoàn thành tất cả giao dịch với mối liên kết này.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Thông số |
|
UnbindRequest(const uint64_t)
~ProtocolEngine
virtual ~ProtocolEngine( void )
Hàm được bảo vệ
Xoá
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 )
Hoàn tất
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 )