nl :: Dệt :: Hồ sơ :: 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 lược
Thực thể quản lý dữ liệu, khách hà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 chung của công cụ giao thức.
Di sản
Các lớp con đã biết trực tiếp:nl :: Weave :: Profiles :: DataManagement_Legacy :: DMClient
nl :: Weave :: Profiles :: DataManagement_Legacy :: DMPublisher
Người xây dựng và Người phá hủy | |
---|---|
ProtocolEngine (void) | |
~ProtocolEngine (void) |
Thuộc tính được bảo vệ | |
---|---|
mBindingTable [kBindingTableSize] | Các ProtocolEngine có một bảng ràng buộc rằng, nếu động cơ sẽ chịu trách nhiệm về bất cứ điều gì ngoài đơn giản chỉ nhận được thông báo phát sóng, có lẽ cần phải chứa ít nhất một entry. |
mExchangeMgr | |
mResponseTimeout | uint32_t |
mTransactionTable [kTransactionTableSize] |
Chức năng công cộng | |
---|---|
BindConfirm ( Binding *aBinding) | virtual WEAVE_ERROR Xử lý xác nhận rằng một yêu cầu ràng buộc đã được hoàn tất thành công. |
BindConfirm ( Binding *aBinding, StatusReport & aReport) | virtual WEAVE_ERROR Xử lý xác nhận rằng một yêu cầu ràng buộc đã 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 ID nút ngang hàng đã biết và mã định danh truyền tải. |
BindRequest (const uint64_t & aPeerNodeId) | Liên kết với một đồng đẳng đã biết bằng cách sử dụng phương tiện truyền tải mặc định. |
BindRequest ( nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode) | |
BindRequest ( WeaveConnection *aConnection) | Yêu cầu ràng buộc bằng kết nối Weave đang hoạt động. |
IncompleteIndication ( Binding *aBinding, StatusReport & aReport) | virtual void Xử lý một dấu hiệu cho thấy rằng một liên kết không thành công. |
IncompleteIndication (const uint64_t & aPeerNodeId, StatusReport & aReport)=0 | virtual void Xử lý một dấu hiệu cho thấy rằng một ràng buộc đã trở nên không 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 ràng buộc khỏi bảng ràng buộc. |
UnbindRequest (const uint64_t & aPeerNodeId, WEAVE_ERROR aErr) | void Yêu cầu hoàn tác và xóa một ràng buộc khỏi bảng ràng buộc. |
Các chức năng đượ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) |
Các lớp học | |
---|---|
nl :: Weave :: Profiles :: DataManagement_Legacy :: ProtocolEngine :: DMTransaction |
Thuộc tính được bảo vệ
mBindingTable
Binding mBindingTable[kBindingTableSize]
Các ProtocolEngine có một bảng ràng buộc rằng, nếu động cơ sẽ chịu trách nhiệm về bất cứ điều gì ngoài đơn giản chỉ nhận được thông báo phát sóng, có lẽ cần phải chứa ít nhất một entry.
Các ràng buộc thường được lập chỉ mục bởi ID nút. Điều này có nghĩa là mỗi công cụ chỉ có thể có một ràng buộc duy nhất với một điểm cuối dịch vụ nhất định.
Đặc tả WDM có khái niệm "ràng buộc mặc định" này là thông báo địa điểm đi nếu không có đích rõ ràng nào được cung cấp. Điều này chủ yếu sẽ được sử dụng trong các thiết bị rất đơn giản với một ràng buộc duy nhất hoặc một số lượng nhỏ các ràng buộc và cho các mục đích khác, sẽ chỉ là ràng buộc đầu tiên được hình thành.
mExchangeMgr
WeaveExchangeManager * mExchangeMgr
mResponseTimeout
uint32_t mResponseTimeout
mTransactionTable
TransactionTableEntry mTransactionTable[kTransactionTableSize]
Chức năng công cộng
BindConfirm
virtual WEAVE_ERROR BindConfirm( Binding *aBinding )
Xử lý xác nhận rằng một yêu cầu ràng buộc đã được hoàn tất thành công.
Khi một ràng buộc đã được hoàn thành, công cụ giao thức sẽ đi qua bảng giao dịch và bắt đầu bất kỳ giao dịch nào phụ thuộc vào ràng buộc đó.
Chi tiết | |||
---|---|---|---|
Thông số |
| ||
Lợi nhuận | WEAVE_NO_ERROR Mở thành công. Nếu không trả về một WEAVE_ERROR phản ánh một sự bất lực để bắt đầu một giao dịch. |
BindConfirm
virtual WEAVE_ERROR BindConfirm( Binding *aBinding, StatusReport & aReport )
Xử lý xác nhận rằng một yêu cầu ràng buộc đã không thành công.
Khi một yêu cầu ràng buộc 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 bất kỳ giao dịch nào tùy thuộc vào ràng buộc.
Chi tiết | |||||
---|---|---|---|---|---|
Thông số |
| ||||
Lợi nhuận |
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 ID nút ngang hàng đã biết và mã định danh truyền tải.
Đưa ra một ID nút ngang hàng và một đặc tả truyền tải, yêu cầu này thiết lập một ràng buộc với máy ngang hàng đó. Việc đấu thầu sẽ yêu cầu hoàn thành bổ sung CHỈ nếu quá trình vận chuyển là TCP. Nếu một ràng buộc với ngang hàng đã có, nó sẽ được sử dụng lại.
Chi tiết | |||||
---|---|---|---|---|---|
Thông số |
| ||||
Lợi nhuận | WEAVE_NO_ERROR về thành công hay WEAVE_ERROR_NO_MEMORY nếu bảng ràng buộc đầy. Nếu không trả về một WEAVE_ERROR phản ánh một sự thất bại để khởi tạo các ràng buộc. |
WeaveTransportOption
BindRequest
WEAVE_ERROR BindRequest( const uint64_t & aPeerNodeId )
Liên kết với một đồng đẳng đã biết bằng cách sử dụng phương tiện truyền tải mặc định.
Chi tiết | |||
---|---|---|---|
Thông số |
| ||
Lợi nhuận | WEAVE_NO_ERROR Mở thành công. Nếu không trả về một WEAVE_ERROR phản ánh sự thất bại của hoạt động ràng buộc. |
BindRequest
WEAVE_ERROR BindRequest( nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode )
BindRequest
WEAVE_ERROR BindRequest( WeaveConnection *aConnection )
Yêu cầu ràng buộc bằng kết nối Weave đang hoạt động.
Một ràng buộc cũng có thể được thiết lập bằng cách sử dụng một kết nối hiện có và đang mở. Lưu ý rằng các ràng buộc được thiết lập theo cách này không cần phải hoàn thành thêm.
Chi tiết | |||
---|---|---|---|
Thông số |
| ||
Lợi nhuận | WEAVE_NO_ERROR về thành công hay WEAVE_ERROR_NO_MEMORY nếu bảng ràng buộc đầy. Nếu không, trả về lỗi phản ánh lỗi không thể khởi tạo liên kết. |
IncompleteIndication
virtual void IncompleteIndication( Binding *aBinding, StatusReport & aReport )
Xử lý một dấu hiệu cho thấy rằng một liên kết không thành công.
Khi một ràng buộc trở nên không hoàn chỉnh, tức là khi kết nối bị đóng cho một ràng buộc TCP, công cụ giao thức phải thực hiện bất kỳ giao dịch nào phụ thuộc vào nó, bao gồm cả việc gọi trình xử lý trạng thái của chúng. Ngoài ra, chỉ báo không đầy đủ được chuyển cho bất kỳ đối tượng lớp cha nào triển khai dạng thay thế của phương thức này có ID ngang hàng.
Chi tiết | |||||
---|---|---|---|---|---|
Thông số |
|
IncompleteIndication
virtual void IncompleteIndication( const uint64_t & aPeerNodeId, StatusReport & aReport )=0
Xử lý một dấu hiệu cho thấy rằng một ràng buộc đã trở nên không 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 pháp này, phương pháp này chỉ đơn giản là chuyển ID ngang hàng cùng với báo cáo trạng thái. Trong thực tế, kể từ khi phương pháp này là khoảng trống ảo, bất kỳ DMClient hoặc DMPublisher lớp con phải cung cấp một thực hiện.
Chi tiết | |||||
---|---|---|---|---|---|
Thông số |
|
Trong đó
virtual WEAVE_ERROR Init( WeaveExchangeManager *aExchangeMgr )
Trong đó
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 ràng buộc khỏi bảng ràng buộc.
Khi một ràng buộc là "không bị ràng buộc" thì bất kỳ giao dịch nào hiện đang phụ thuộc vào nó cũng phải bị loại bỏ. Phương pháp này tự động hoàn tất tất cả các giao dịch với ràng buộc này.
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 hoàn tác và xóa một ràng buộc khỏi bảng ràng buộc.
Khi một ràng buộc là "không bị ràng buộc" thì bất kỳ giao dịch nào hiện đang phụ thuộc vào nó cũng phải bị loại bỏ. Phương pháp này tự động hoàn tất tất cả các giao dịch với ràng buộc này.
Chi tiết | |||||
---|---|---|---|---|---|
Thông số |
|
UnbindRequest (const uint64_t)
~ ProtocolEngine
virtual ~ProtocolEngine( void )
Các chức năng được bảo vệ
Thông thoáng
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 )
Các giao dịch thất bại
bool FailTransactions( Binding *aBinding, StatusReport & aReport )
Hoàn thiện
virtual void Finalize( void )
FinalizeBindingTable
void FinalizeBindingTable( void )
FinalizeTransactionTable
void FinalizeTransactionTable( void )
FinalizeTrans Giao dịch
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 )