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