nl:: Weave:: Profiles:: DataManagement_Legacy:: Binding
#include <src/lib/profiles/data-management/Legacy/Binding.h>
Lớp Binding quản lý trạng thái giao tiếp thay cho một thực thể ứng dụng bằng cách sử dụng Weave.
Tóm tắt
Khi một ứng dụng muốn sử dụng Weave để giao tiếp với một thực thể từ xa, có rất nhiều lựa chọn. Lớp Binding tập hợp các tuỳ chọn này và sắp xếp chúng theo cách sao cho nội dung dễ thực hiện, còn nội dung khó hơn thì ít nhất cũng có thể xem được. Các lựa chọn bao gồm:
- giao tiếp UDP unicast với một nút ngang hàng đã biết.
- Truyền phát UDP bằng nút "any".
- giao tiếp WRMP đơn hướng với một nút ngang hàng đã biết.
- TCP giao tiếp với một nút ngang hàng đã biết.
- TCP giao tiếp với một điểm cuối dịch vụ đã biết bằng một thực thể trình quản lý dịch vụ để thiết lập.
- giao tiếp TCP dựa trên kết nối được thiết lập sẵn.
Hàm khởi tạo và hàm phá |
|
---|---|
Binding(void)
Hàm khởi tạo mặc định cho các đối tượng Binding.
|
|
~Binding(void)
Hàm khởi tạo cho các đối tượng Binding.
|
Loại công khai |
|
---|---|
@165{
|
enum Tập hợp các trạng thái của đối tượng Liên kết. |
Thuộc tính công khai |
|
---|---|
mAuthMode
|
WeaveAuthMode
Chế độ xác thực Weave sẽ được sử dụng.
|
mConnection
|
Con trỏ đến kết nối Weave hiện đang được sử dụng trong liên kết này.
|
mEngine
|
Con trỏ đến đối tượng ProtocolEngine liên quan đến Binding này.
|
mPeerNodeId
|
uint64_t
Mã nút 64 bit của đích liên kết.
|
mServiceMgr
|
Con trỏ đến đối tượng ServiceManager (không bắt buộc) dùng để hoàn tất liên kết này.
|
mState
|
uint8_t
Trạng thái hiện tại của đối tượng Binding.
|
mTransport
|
uint8_t
Phương thức truyền tải cần sử dụng để hoàn tất Binding này.
|
Hàm công khai |
|
---|---|
CompleteConfirm(WeaveConnection *aConnection)
|
void
Xử lý việc xác nhận yêu cầu liên kết.
|
CompleteConfirm(StatusReport & aReport)
|
void
Xử lý lỗi yêu cầu liên kết.
|
CompleteConfirm(void)
|
void
Xử lý việc xác nhận yêu cầu liên kết.
|
CompleteRequest(ProtocolEngine *aEngine)
|
Yêu cầu hoàn tất việc liên kết.
|
Connect(WeaveConnection *aConnection)
|
Hoàn tất quá trình liên kết TCP bằng cách cung cấp kết nối đã hoàn tất.
|
Finalize(void)
|
void
"Huỷ hoàn tất" một liên kết và giải phóng nó.
|
Finalize(WEAVE_ERROR aErr)
|
void
"Huỷ hoàn tất" một liên kết và giải phóng nó.
|
Free(void)
|
void
Xoá trạng thái liên kết.
|
GetExchangeCtx(WeaveExchangeManager *aExchangeMgr, void *aAppState)
|
Tạo đối tượng ExchangeContext từ một Binding.
|
IncompleteIndication(StatusReport & aReport)
|
void
Xử lý lỗi liên kết.
|
Init(const uint64_t & aPeerNodeId)
|
Khởi tạo một Binding (Liên kết) chỉ bằng mã nhận dạng nút.
|
Init(const uint64_t & aPeerNodeId, uint8_t aTransport)
|
Khởi động đối tượng Binding dựa trên mã ứng dụng ngang hàng và mạng truyền tải.
|
Init(const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode)
|
Khởi tạo đối tượng Binding đến một điểm cuối dịch vụ.
|
Init(WeaveConnection *aConnection)
|
Khởi chạy đối tượng Binding bằng WeaveConnection.
|
IsComplete(void)
|
bool
Kiểm tra xem liên kết đã hoàn tất chưa.
|
IsFree(void)
|
bool
Dấu kiểm là một ràng buộc miễn phí.
|
UncompleteRequest(void)
|
void
Làm cho liên kết không hoàn chỉnh.
|
UncompleteRequest(WEAVE_ERROR aErr)
|
void
Làm cho liên kết không hoàn chỉnh.
|
Loại công khai
@165
@165
Tập hợp các trạng thái của đối tượng Liên kết.
Thuộc tính | |
---|---|
kState_Complete
|
Trạng thái của Binding (Liên kết) đã hoàn tất và sẵn sàng để sử dụng. |
kState_Completing
|
Trạng thái của một Binding đang trong quá trình hoàn tất. |
kState_Incomplete
|
Trạng thái ban đầu (và cuối cùng) của Binding. |
Thuộc tính công khai
mAuthMode
WeaveAuthMode mAuthMode
Chế độ xác thực Weave sẽ được sử dụng.
(ĐỌC_CHỈ)
Đây là chế độ xác thực được sử dụng trong mọi hoạt động giao tiếp chịu sự điều chỉnh của mối liên kết này.
mConnection
WeaveConnection * mConnection
Con trỏ đến kết nối Weave hiện đang được sử dụng trong liên kết này.
(CHỈ ĐỌC)
Bạn có thể khởi tạo các mối liên kết TCP bằng một kết nối ngay lập tức hoặc phân bổ một liên kết tại thời điểm hoàn tất.
mEngine
ProtocolEngine * mEngine
Con trỏ đến đối tượng ProtocolEngine liên quan đến Binding này.
Liên kết thường được hoàn tất đối với một công cụ giao thức cụ thể, chủ yếu được dùng làm cách truy cập vào MessageLayer. Đây là nơi chúng tôi theo dõi nó.
mPeerNodeId
uint64_t mPeerNodeId
Mã nút 64 bit của đích liên kết.
(CHỈ ĐỌC)
Mỗi Binding (Liên kết) đều có một thực thể mục tiêu được đặt tên ở đây. Ngoài mã nút Weave, mã này có thể đặt tên cho điểm cuối của dịch vụ.
mServiceMgr
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager * mServiceMgr
Con trỏ đến đối tượng ServiceManager (không bắt buộc) dùng để hoàn tất liên kết này.
(CHỈ ĐỌC)
Khi liên kết với dịch vụ Weave, mã điểm cuối của dịch vụ 64 bit có thể được cung cấp tại thời điểm khởi chạy thay cho mã nhận dạng nút Weave. Trong trường hợp này, bạn cũng cần có đối tượng ServiceManager để hoàn tất liên kết. Các liên kết TCP hoặc WRMP thông thường không yêu cầu đối tượng ServiceManager.
mState
uint8_t mState
Trạng thái hiện tại của đối tượng Binding.
Mỗi lần, bạn chỉ có thể chạy một thao tác "hoàn tất" và trong mọi trường hợp, nếu bạn yêu cầu hoàn thành một mối liên kết đã hoàn tất, thao tác này chỉ cần gọi hàm xác nhận ngay lập tức. Biến trạng thái dưới đây theo dõi trạng thái hiện tại và hoạt động như một khoá.
mTransport
uint8_t mTransport
Phương thức truyền tải cần sử dụng để hoàn tất Binding này.
(CHỈ ĐỌC)
Các giá trị mTransport có thể được xác định trong DMConstants.h.
Hàm công khai
Ép giấy tờ
Binding( void )
Hàm khởi tạo mặc định cho các đối tượng Binding.
Xoá tất cả trạng thái nội bộ.
CompleteConfirm
void CompleteConfirm( WeaveConnection *aConnection )
Xử lý việc xác nhận yêu cầu liên kết.
Thông tin chi tiết | |||
---|---|---|---|
Thông số |
|
CompleteConfirm
void CompleteConfirm( StatusReport & aReport )
Xử lý lỗi yêu cầu liên kết.
Thông tin chi tiết | |||
---|---|---|---|
Thông số |
|
CompleteConfirm
void CompleteConfirm( void )
Xử lý việc xác nhận yêu cầu liên kết.
CompleteRequest
WEAVE_ERROR CompleteRequest( ProtocolEngine *aEngine )
Yêu cầu hoàn tất việc liên kết.
Việc hoàn tất liên kết, ít nhất là đối với các liên kết yêu cầu TCP, được thực hiện đối với một đối tượng ProtocolEngine cụ thể, cung cấp quyền truy cập vào một thực thể ExchangeManager.
Thông tin chi tiết | |||||||
---|---|---|---|---|---|---|---|
Thông số |
|
||||||
Giá trị trả về |
|
||||||
Trả về |
Nếu không, mọi WEAVE_ERROR được trả về trong khi cố gắng kết nối.
|
Kết nối
WEAVE_ERROR Connect( WeaveConnection *aConnection )
Hoàn tất quá trình liên kết TCP bằng cách cung cấp kết nối đã hoàn tất.
Bạn không thể sử dụng liên kết TCP mới khởi tạo cho đến khi hoàn tất. Thông thường, việc này được thực hiện theo yêu cầu khi ứng dụng cố gắng tận dụng liên kết để gửi thông báo, nhưng cũng có thể hoàn tất một cách rõ ràng bằng cách cung cấp kết nối Weave.
Thông tin chi tiết | |||||||
---|---|---|---|---|---|---|---|
Thông số |
|
||||||
Giá trị trả về |
|
Hoàn tất
void Finalize( void )
"Huỷ hoàn tất" một liên kết và giải phóng nó.
Liên kết có thể có trạng thái yêu cầu dọn dẹp, ví dụ: đóng kết nối, được xử lý bằng phương thức Uncomplete() bên cạnh trạng thái chỉ được xoá về trạng thái ban đầu bằng phương thức Free(). Phương thức này, phần lớn vì sự thuận tiện, sẽ gọi cả hai.
Xem thêm:Hoàn tất(WEAVE_ERROR)
Hoàn tất
void Finalize( WEAVE_ERROR aErr )
"Huỷ hoàn tất" một liên kết và giải phóng nó.
Liên kết có thể có trạng thái yêu cầu dọn dẹp, ví dụ: đóng kết nối, được xử lý bằng phương thức Uncomplete() bên cạnh trạng thái chỉ được xoá về trạng thái ban đầu bằng phương thức Free(). Phương thức này, phần lớn vì sự thuận tiện, sẽ gọi cả hai.
Thông tin chi tiết | |||
---|---|---|---|
Thông số |
|
Hoàn tất(vô hiệu)
Miễn phí
void Free( void )
Xoá trạng thái liên kết.
Trả lại vô điều kiện mọi trạng thái liên kết về trạng thái ban đầu.
GetExchangeCtx
ExchangeContext * GetExchangeCtx( WeaveExchangeManager *aExchangeMgr, void *aAppState )
Tạo đối tượng ExchangeContext từ một Binding.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Thông số |
|
||||
Trả về |
con trỏ đến đối tượng ExchangeContext hoặc giá trị NULL khi gặp lỗi.
|
IncompleteIndication
void IncompleteIndication( StatusReport & aReport )
Xử lý lỗi liên kết.
Phương thức này được gọi và đến lượt sẽ gọi các trình xử lý lớp cao hơn khi liên kết bị lỗi SAU KHI hoàn tất, tức là sau khi CompleteConfirm() được gọi với một trạng thái biểu thị thành công.
Thông tin chi tiết | |||
---|---|---|---|
Thông số |
|
CompleteConfirm(StatusReport &aReport).
Bắt đầu
WEAVE_ERROR Init( const uint64_t & aPeerNodeId )
Khởi tạo một Binding (Liên kết) chỉ bằng mã nhận dạng nút.
Điều này sẽ dẫn đến sự liên kết với mạng truyền tải mặc định đã định cấu hình.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Thông số |
|
||||
Giá trị trả về |
|
Bắt đầu
WEAVE_ERROR Init( const uint64_t & aPeerNodeId, uint8_t aTransport )
Khởi động đối tượng Binding dựa trên mã ứng dụng ngang hàng và mạng truyền tải.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Thông số |
|
||||
Giá trị trả về |
|
Bắt đầu
WEAVE_ERROR Init( const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode )
Khởi tạo đối tượng Binding đến một điểm cuối dịch vụ.
Đây là cách bạn liên kết với một thiết bị đầu cuối cụ thể trên dịch vụ Nest. Việc liên kết kiểu này yêu cầu quy trình hoàn tất nhiều giai đoạn, có thể bao gồm việc điền hoặc cập nhật bộ nhớ đệm của thư mục dịch vụ cục bộ. Trong hầu hết trường hợp, quy trình này bị ẩn khỏi ứng dụng nhưng điều đó có nghĩa là các lỗi phát sinh sau đó trong quá trình có thể được phân phối, thường là qua lệnh gọi lại "xác nhận" có liên quan, sau (đôi khi rất lâu sau) yêu cầu ban đầu để sử dụng (và hoàn tất) liên kết.
Thông tin chi tiết | |||||||
---|---|---|---|---|---|---|---|
Thông số |
|
||||||
Giá trị trả về |
|
Bắt đầu
WEAVE_ERROR Init( WeaveConnection *aConnection )
Khởi chạy đối tượng Binding bằng WeaveConnection.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Thông số |
|
||||
Giá trị trả về |
|
IsComplete
bool IsComplete( void )
Kiểm tra xem liên kết đã hoàn tất chưa.
Thông tin chi tiết | |
---|---|
Trả về |
true nếu câu trả lời đầy đủ, nếu không thì là false.
|
CompleteRequest(ProtocolEngine *aEngine)
IsFree
bool IsFree( void )
Dấu kiểm là một ràng buộc miễn phí.
Trong ngữ cảnh này, "Miễn phí" có nghĩa đơn giản là "có mã nhận dạng nút ngang hàng đã xác định". IsFree() nên được coi là có nghĩa "đã gọi Free() và không được sử dụng kể từ đó".
Thông tin chi tiết | |
---|---|
Trả về |
giá trị true (đúng) nếu liên kết là tự do, nếu không có thì giá trị false (sai).
|
UncompleteRequest
void UncompleteRequest( void )
Làm cho liên kết không hoàn chỉnh.
Về cơ bản, liên kết sẽ ở trạng thái "chưa hoàn tất" sau khi phương thức này được gọi, nhưng tinh tế hơn, bất kỳ trạng thái liên quan nào không có trong chính liên kết đó, như kết nối TCP, cũng phải được xóa. Các ứng dụng có thể cân nhắc gọi UncompleteRequest() như một phần của hoạt động dọn dẹp lỗi.
Xem thêm:UncompleteRequest(WEAVE_ERROR )
UncompleteRequest
void UncompleteRequest( WEAVE_ERROR aErr )
Làm cho liên kết không hoàn chỉnh.
Về cơ bản, liên kết sẽ ở trạng thái "chưa hoàn tất" sau khi phương thức này được gọi, nhưng tinh tế hơn, bất kỳ trạng thái liên quan nào không có trong chính liên kết đó, như kết nối TCP, cũng phải được xóa. Các ứng dụng có thể cân nhắc gọi UncompleteRequest() như một phần của hoạt động dọn dẹp lỗi.
Thông tin chi tiết | |||
---|---|---|---|
Thông số |
|
UncompleteRequest(void)
~Liên kết
virtual ~Binding( void )
Hàm khởi tạo cho các đối tượng Binding.
Xoá tất cả trạng thái nội bộ VÀ đóng các kết nối đang mở nếu cần.