nl:: Weave:: Profiles:: DataManagement_Legacy:: ProtocolEngine
Đây là một 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 học 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à phá huỷ |
|
---|---|
ProtocolEngine(void)
|
|
~ProtocolEngine(void)
|
Thuộc tính được bảo vệ |
|
---|---|
mBindingTable[kBindingTableSize]
|
ProtocolEngine có một bảng liên kết mà nếu công cụ chịu trách nhiệm cho mọi việc ngoài việc nhận thông báo truyền tin, thì có thể cần phải chứa ít nhất một mục.
|
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 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ý thông báo 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ã 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 phương thức 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 một kết nối Weave đang hoạt động.
|
IncompleteIndication(Binding *aBinding, StatusReport & aReport)
|
virtual void
Xử lý chỉ báo cho biết không liên kết được.
|
IncompleteIndication(const uint64_t & aPeerNodeId, StatusReport & aReport)=0
|
virtual void
Xử lý chỉ báo cho biết một liên kết đã trở nên 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 hoàn tác và xóa một 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 hoàn tác và xóa một 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 mà nếu công cụ chịu trách nhiệm cho mọi việc ngoài việc nhận thông báo truyền tin, thì có thể cần phải chứa ít nhất một mục.
Các liên kết thường được lập chỉ mục theo ID nút. Tức là mỗi công cụ chỉ có thể có một liên kết duy nhất với một điểm cuối dịch vụ nhất định.
Thông số WDM có khái niệm "liên kết mặc định" đây là địa điểm mà thông báo sẽ đến nếu không có điểm đến rõ ràng nào được cung cấp. Đối tượng này chủ yếu sẽ được sử 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. Đối với 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 yêu cầu liên kết đã hoàn tất thành công.
Sau khi hoàn tất liên kết, công cụ giao thức sẽ duyệt qua 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 | |||
---|---|---|---|
Tham số |
|
||
Trả về |
WEAVE_NO_ERROR Khi thành công. Nếu không, hãy trả về mã WEAVE_ERROR cho biết việc không thể bắt đầu giao dịch.
|
BindConfirm
virtual WEAVE_ERROR BindConfirm( Binding *aBinding, StatusReport & aReport )
Xử lý thông báo 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 truy cập vào bảng giao dịch và không thực hiện được bất kỳ giao dịch nào tuỳ thuộc vào mối liên kết.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Tham 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ã 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 mối liên kết với nút ngang hàng đó. Việc đặt giá thầu sẽ CHỈ yêu cầu hoàn thành 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 này sẽ được sử dụng lại.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Tham 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ề một WEAVE_ERROR để phản ánh lỗi không khởi chạy 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 phương thức truyền tải mặc định.
Thông tin chi tiết | |||
---|---|---|---|
Tham số |
|
||
Trả về |
WEAVE_NO_ERROR Khi thành công. Nếu không, hãy trả về một WEAVE_ERROR để phản ánh lỗi của thao tác liên kết.
|
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 một kết nối Weave đang hoạt động.
Bạn cũng có thể thiết lập liên kết bằng một kết nối hiện có và 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 thêm.
Thông tin chi tiết | |||
---|---|---|---|
Tham 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 phản ánh lỗi không khởi động được liên kết.
|
IncompleteIndication
virtual void IncompleteIndication( Binding *aBinding, StatusReport & aReport )
Xử lý chỉ báo cho biết không liên kết được.
Khi một liên kết không hoàn chỉnh, tức là khi kết nối bị đóng vì một liên kết TCP, công cụ giao thức phải không thực hiện được 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 đủ được chuyển tới bất kỳ đối tượng lớp cấp cao nào triển khai hình thức thay thế của phương thức này mà lấy mã ứng dụng ngang hàng.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Tham số |
|
IncompleteIndication
virtual void IncompleteIndication( const uint64_t & aPeerNodeId, StatusReport & aReport )=0
Xử lý chỉ báo cho biết một liên kết đã trở nên chưa hoàn chỉnh.
Các lớp cao hơn muốn nhận 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ã 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 là khoảng trống ảo, nên mọi lớp con DMClient hoặc DMPublisher đều phải cung cấp một phương thức triển khai.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Tham số |
|
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 )
Yêu cầu hoàn tác và xóa một liên kết khỏi bảng liên kết.
Khi một liên kết ở trạng thái "không liên kết" mọi giao dịch hiện đang phụ thuộc vào mã này cũng sẽ bị xoá. Phương thức này tự động hoàn tất tất cả giao dịch có liên kết này.
Thông tin chi tiết | |||
---|---|---|---|
Tham số |
|
UnbindRequest(const uint64_t, WEAVE_ERROR)
UnbindRequest
void UnbindRequest( const uint64_t & aPeerNodeId, WEAVE_ERROR aErr )
Yêu cầu hoàn tác và xóa một liên kết khỏi bảng liên kết.
Khi một liên kết ở trạng thái "không liên kết" mọi giao dịch hiện đang phụ thuộc vào mã này cũng sẽ bị xoá. Phương thức này tự động hoàn tất tất cả giao dịch có liên kết này.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Tham số |
|
UnbindRequest(const uint64_t)
~ProtocolEngine
virtual ~ProtocolEngine( void )
Hàm được bảo vệ
Xóa
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 )