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 mặt cho một thực thể ứng dụng bằng cách 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 sẽ kết hợp các tuỳ chọn này và sắp xếp chúng sao cho nội dung dễ thì dễ, nội dung khó hơn ít nhất cũng có thể ghi được. Các tùy chọn được đề cập bao gồm:
- giao tiếp unicast UDP với một nút ngang hàng đã biết.
- Truyền tin UDP bằng "any" nút.
- giao tiếp WRMP unicast với một nút ngang hàng đã biết.
- giao tiếp TCP với một nút ngang hàng đã biết.
- TCP giao tiếp với đ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 thiết lập sẵn.
Hàm khởi tạo và phá huỷ |
|
---|---|
Binding(void)
Hàm khởi tạo mặc định cho các đối tượng Binding.
|
|
~Binding(void)
Hàm huỷ cho đối tượng Binding.
|
Loại công khai |
|
---|---|
@165{
|
enum Tập hợp trạng thái của đối tượng Binding. |
Các thuộc tính công khai |
|
---|---|
mAuthMode
|
WeaveAuthMode
Chế độ xác thực Weave sẽ được sử dụng.
|
mConnection
|
Con trỏ trỏ đến kết nối Weave hiện đang được dùng trong liên kết này.
|
mEngine
|
Một con trỏ trỏ đến đối tượng ProtocolEngine liên quan đến Binding này.
|
mPeerNodeId
|
uint64_t
Mã nút 64 bit của mục tiêu liên kết.
|
mServiceMgr
|
Con trỏ trỏ đến đối tượng ServiceManager (không bắt buộc) để sử dụng khi 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 vận chuyển dùng để hoàn tất Liên kết 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 thành một liên kết.
|
Connect(WeaveConnection *aConnection)
|
Hoàn tất liên kết TCP bằng cách cung cấp một kết nối hoàn chỉnh.
|
Finalize(void)
|
void
"Chưa hoàn tất" một liên kết và giải phóng nó.
|
Finalize(WEAVE_ERROR aErr)
|
void
"Chưa 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 Liên kết.
|
IncompleteIndication(StatusReport & aReport)
|
void
Xử lý lỗi liên kết.
|
Init(const uint64_t & aPeerNodeId)
|
Khởi động một Binding chỉ bằng một mã nút.
|
Init(const uint64_t & aPeerNodeId, uint8_t aTransport)
|
Khởi động đối tượng Binding dựa trên mã nhận dạng ứng dụng ngang hàng và thông tin truyền tải.
|
Init(const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode)
|
Khởi động đối tượng Binding với một điểm cuối dịch vụ.
|
Init(WeaveConnection *aConnection)
|
Khởi động đối tượng Binding bằng WeaveConnection.
|
IsComplete(void)
|
bool
Kiểm tra xem một liên kết đã hoàn tất hay chưa.
|
IsFree(void)
|
bool
Kiểm tra xem có liên kết miễn phí hay không.
|
UncompleteRequest(void)
|
void
Khiến liên kết không hoàn chỉnh.
|
UncompleteRequest(WEAVE_ERROR aErr)
|
void
Khiến liên kết không hoàn chỉnh.
|
Loại công khai
@165
@165
Tập hợp trạng thái của đối tượng Binding.
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 Liên kết đ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. |
Các thuộc tính công khai
mAuthMode
WeaveAuthMode mAuthMode
Chế độ xác thực Weave sẽ được sử dụng.
(READ_ONLY)
Đây là chế độ xác thực được sử dụng trong tất cả thông tin liên lạc chịu sự điều chỉnh của liên kết này.
mConnection
WeaveConnection * mConnection
Con trỏ trỏ đến kết nối Weave hiện đang được dùng trong liên kết này.
(CHỈ ĐỌC)
Các liên kết TCP có thể được khởi tạo bằng một kết nối ngay lập tức hoặc có thể phân bổ một liên kết tại thời điểm hoàn tất.
mEngine
ProtocolEngine * mEngine
Một con trỏ 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ể, công cụ này 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.
mPeerNodeId
uint64_t mPeerNodeId
Mã nút 64 bit của mục tiêu liên kết.
(CHỈ ĐỌC)
Mỗi Binding đều có một thực thể mục tiêu và thực thể này được đặt tên ở đây. Ngoài mã nhận dạng nút Weave, mã này có thể đặt tên cho điểm cuối dịch vụ.
mServiceMgr
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager * mServiceMgr
Con trỏ trỏ đến đối tượng ServiceManager (không bắt buộc) để sử dụng khi hoàn tất liên kết này.
(CHỈ ĐỌC)
Khi liên kết với dịch vụ Weave, mã nhận dạng đ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.
Chỉ một lần "hoàn tất" có thể chạy cùng một lúc. Trong mọi trường hợp, nếu bạn yêu cầu hoàn thành một liên kết hoàn chỉnh, thì hàm xác nhận sẽ ngay lập tức được gọi. Biến trạng thái bên dưới theo dõi trạng thái hiện tại và đóng vai trò là khoá.
mTransport
uint8_t mTransport
Phương thức vận chuyển dùng để hoàn tất Liên kết này.
(CHỈ ĐỌC)
Các giá trị có thể có cho mTransport đượ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 | |||
---|---|---|---|
Tham số |
|
CompleteConfirm
void CompleteConfirm( StatusReport & aReport )
Xử lý lỗi yêu cầu liên kết.
Thông tin chi tiết | |||
---|---|---|---|
Tham 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 một liên kết.
Việc hoàn thành mộ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ể, giúp cung cấp quyền truy cập vào một thực thể ExchangeManager.
Thông tin chi tiết | |||||||
---|---|---|---|---|---|---|---|
Tham số |
|
||||||
Giá trị trả về |
|
||||||
Trả về |
Nếu không, mọi lỗi WEAVE_ERROR được trả về khi cố gắng kết nối.
|
Kết nối
WEAVE_ERROR Connect( WeaveConnection *aConnection )
Hoàn tất liên kết TCP bằng cách cung cấp một kết nối hoàn chỉnh.
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 sử dụng liên kết này để gửi thông báo. Tuy nhiên, bạn cũng có thể hoàn tất việc này 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 | |||||||
---|---|---|---|---|---|---|---|
Tham số |
|
||||||
Giá trị trả về |
|
Hoàn tất
void Finalize( void )
"Chưa hoàn tất" một liên kết và giải phóng nó.
Các liên kết có thể có trạng thái cần dọn dẹp, ví dụ: trạng thái đóng kết nối được xử lý bằng phương thức Uncomplete() ngoài trạng thái đơn giản đượ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 để thuận tiện, gọi cả hai.
Xem thêm:Hoàn tất(WEAVE_ERROR)
Hoàn tất
void Finalize( WEAVE_ERROR aErr )
"Chưa hoàn tất" một liên kết và giải phóng nó.
Các liên kết có thể có trạng thái cần dọn dẹp, ví dụ: trạng thái đóng kết nối được xử lý bằng phương thức Uncomplete() ngoài trạng thái đơn giản đượ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 để thuận tiện, gọi cả hai.
Thông tin chi tiết | |||
---|---|---|---|
Tham số |
|
Hoàn tất(vô hiệu)
Miễn phí
void Free( void )
Xoá trạng thái liên kết.
Trả về vô điều kiện tất cả 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ừ Liên kết.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Tham số |
|
||||
Trả về |
con trỏ trỏ đến đối tượng ExchangeContext hoặc giá trị NULL khi không thành công.
|
IncompleteIndication
void IncompleteIndication( StatusReport & aReport )
Xử lý lỗi liên kết.
Phương thức này được gọi và đổi lại, gọi trình xử lý lớp cao hơn khi liên kết không thành công SAU KHI hoàn tất, tức là sau khi CompleteConfirm() được gọi với trạng thái cho biết thành công.
Thông tin chi tiết | |||
---|---|---|---|
Tham số |
|
CompleteConfirm(StatusReport &aReport).
Init
WEAVE_ERROR Init( const uint64_t & aPeerNodeId )
Khởi động một Binding chỉ bằng một mã nút.
Việc này sẽ tạo ra sự liên kết với phương thức truyền tải mặc định đã định cấu hình.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Tham số |
|
||||
Giá trị trả về |
|
Init
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à thông tin truyền tải.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Tham số |
|
||||
Giá trị trả về |
|
Init
WEAVE_ERROR Init( const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode )
Khởi động đối tượng Binding với một điểm cuối dịch vụ.
Đây là cách bạn liên kết với một điểm cuối cụ thể trên dịch vụ Nest. Việc liên kết loại này đòi hỏi một quá trình hoàn tất gồm nhiều giai đoạn, có thể bao gồm cả 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 này trong quy trình có thể được gửi, thường thông qua lệnh "xác nhận" có liên quan lệnh gọi lại, 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 | |||||||
---|---|---|---|---|---|---|---|
Tham số |
|
||||||
Giá trị trả về |
|
Init
WEAVE_ERROR Init( WeaveConnection *aConnection )
Khởi động đối tượng Binding bằng WeaveConnection.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Tham số |
|
||||
Giá trị trả về |
|
IsComplete
bool IsComplete( void )
Kiểm tra xem một liên kết đã hoàn tất hay chưa.
Thông tin chi tiết | |
---|---|
Trả về |
true nếu đầy đủ, false nếu không điền đầy đủ.
|
CompleteRequest(ProtocolEngine *aEngine)
IsFree
bool IsFree( void )
Kiểm tra xem có liên kết miễn phí hay không.
"Miễn phí" trong ngữ cảnh này chỉ có nghĩa là "có một nút ngang hàng xác định ID". IsFree() should be thought of as meaning "has had Free() gọi đến và chưa được sử dụng kể từ đó".
Thông tin chi tiết | |
---|---|
Trả về |
true nếu liên kết tự do, false nếu không liên kết.
|
UncompleteRequest
void UncompleteRequest( void )
Khiến liên kết không hoàn chỉnh.
Về cơ bản, một liên kết sẽ nằm trong trường hợp "không hoàn chỉnh" trạng thái sau khi phương thức này được gọi trên nó, nhưng tinh tế hơn là bất kỳ trạng thái nào có liên quan không nằm trong chính liên kết, ví dụ: kết nối TCP cũng cần được dọn dẹp. Các ứng dụng có thể cân nhắc gọi UncompleteRequest() trong quá trình dọn dẹp lỗi.
Xem thêm:UncompleteRequest(WEAVE_ERROR )
UncompleteRequest
void UncompleteRequest( WEAVE_ERROR aErr )
Khiến liên kết không hoàn chỉnh.
Về cơ bản, một liên kết sẽ nằm trong trường hợp "không hoàn chỉnh" trạng thái sau khi phương thức này được gọi trên nó, nhưng tinh tế hơn là bất kỳ trạng thái nào có liên quan không nằm trong chính liên kết, ví dụ: kết nối TCP cũng cần được dọn dẹp. Các ứng dụng có thể cân nhắc gọi UncompleteRequest() trong quá trình dọn dẹp lỗi.
Thông tin chi tiết | |||
---|---|---|---|
Tham số |
|
UncompleteRequest(void)
~Liên kết
virtual ~Binding( void )
Hàm huỷ cho đối tượng Binding.
Xoá tất cả trạng thái nội bộ VÀ, nếu cần thiết, đóng các kết nối đang mở.