Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.
Trang này được dịch bởi Cloud Translation API.
Switch to English

nl :: Dệt :: Hồ sơ :: DataManagement_Legacy :: Ràng buộc

#include <src/lib/profiles/data-management/Legacy/Binding.h>

Lớp Binding quản lý trạng thái truyền thông thay mặt cho một thực thể ứng dụng bằ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 lựa chọn. Lớp Binding sắp xếp các tùy chọn này và sắp xếp chúng theo cách sao cho thứ dễ thì dễ và thứ khó hơn ít nhất là có thể xử lý được. Các tùy chọn được bảo hiểm bao gồm:

  • giao tiếp UDP unicast 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)
Hàm tạo mặc định cho các đối tượng Ràng buộc .
~Binding (void)
Bộ hủy cho các đối tượng Ràng buộc .

Các loại công khai

@165 {
kState_Incomplete = 0,
kState_Completing = 1,
kState_Complete = 2
}
enum
Tập hợp các trạng thái đối tượng Ràng buộc .

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ỏ đến đối tượng ProtocolEngine liên quan đến Ràng buộc này.
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
Trạng thái đối tượng Ràng buộc hiện tại.
mTransport
uint8_t
Phương tiện vận chuyển để sử dụng trong việc hoàn thành Ràng buộc này.

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 một đối tượng ExchangeContext từ một Binding .
IncompleteIndication ( StatusReport & aReport)
void
Xử lý lỗi ràng buộc.
Init (const uint64_t & aPeerNodeId)
Khởi tạo Ràng buộc chỉ với một ID nút.
Init (const uint64_t & aPeerNodeId, uint8_t aTransport)
Khởi tạo một đối tượng Binding dựa trên ID ngang hàng và phương tiện truyền tải.
Init (const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode)
Khởi tạo đối tượng Ràng buộc với điểm cuối dịch vụ.
Init ( WeaveConnection *aConnection)
Khởi tạo một đối tượng Binding bằng 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

Tập hợp các trạng thái đối tượng Ràng buộc .

Tính chất
kState_Complete

Trạng thái của một Ràng buộc đã hoàn tất và sẵn sàng để sử dụng.

kState_Completing

Trạng thái của một Ràng buộc đang trong quá trình hoàn thành.

kState_Incomplete

Trạng thái ban đầu (và cuối cùng) của một Ràng buộc .

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ỏ đến đối tượng ProtocolEngine liên quan đến Ràng buộc này.

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ể, phần lớn đượ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 đều có một thực thể đích, đượ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 liên kết 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

Trạng thái đối tượng Ràng buộc hiện tại.

Chỉ một thao tác "hoàn thành" có thể chạy tại một thời điểm 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

Phương tiện vận chuyển để sử dụng trong việc hoàn thành ràng buộc này

(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
)

Hàm tạo mặc định cho các đối tượng Ràng buộc .

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ố
[in] aConnection
Một con trỏ đến một WeaveConnection đang hoạt động đến mục tiêu liên kết.

CompleteConfirm

void CompleteConfirm(
  StatusReport & aReport
)

Xử lý lỗi yêu cầu ràng buộc.

Chi tiết
Thông số
[in] aReport
Tham chiếu đến một đối tượng StatusReport mô tả lỗi.

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.

Việc hoàn thành một ràng buộc, ít nhất là đối với các ràng buộc 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 phiên bản ExchangeManager.

Chi tiết
Thông số
[in] aEngine
Một con trỏ đến một đối tượng ProtocolEngine mà quá trình hoàn thành đang được thực hiện.
Giá trị trả lại
WEAVE_NO_ERROR
Về thành công.
WEAVE_ERROR_INCORRECT_STATE
nếu ràng buộc đã được hoàn thành.
WEAVE_ERROR_NO_MEMORY
Nếu kết nối được yêu cầu và không có kết nối nào khả dụng
Lợi nhuận
Nếu không, bất kỳ WEAVE_ERROR nào cũng trả về 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 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ố
[in] aConnection
Một con trỏ đến WeaveConnection được sử dụng để hoàn thành liên kết.
Giá trị trả lại
WEAVE_NO_ERROR
Về thành công.
WEAVE_ERROR_INCORRECT_STATE
Nếu ràng buộc đã có kết nối.
WEAVE_ERROR_INVALID_ARGUMENT
Nếu kết nối là NULL.

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ó.

Các ràng buộc 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ởi phương thức Uncomplete () ngoài trạng thái được xóa đơn giản về trạng thái ban đầu bằng phương thức Free () . 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ó.

Các ràng buộc có thể có trạng thái yêu cầu dọn dẹp, ví dụ như đóng kết nối, được xử lý bởi phương thức Uncomplete () ngoài trạng thái chỉ được xóa về trạng thái ban đầu bằng phương thức Free () . 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ố
[in] aErr
Mã lỗi này cho biết nguyên nhân của yêu cầu này. Nếu không phải WEAVE_NO_ERROR, kết nối TCP có thể bị hủy bỏ.
Xem thêm:
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 tất cả trạng thái ràng buộc một cách vô điều kiện về trạng thái ban đầu.

GetExchangeCtx

ExchangeContext * GetExchangeCtx(
  WeaveExchangeManager *aExchangeMgr,
  void *aAppState
)

Tạo một đối tượng ExchangeContext từ một Binding .

Chi tiết
Thông số
[in] aExchangeMgr
Một con trỏ đến người quản lý trao đổi để yêu cầu ngữ cảnh.
[in] aAppState
Một con trỏ void đến một đối tượng trạng thái ứng dụng sẽ được lưu trữ trong ngữ cảnh trao đổi để sử dụng sau này.
Lợi nhuận
một con trỏ đến một đối tượng ExchangeContext hoặc NULL khi bị lỗi.

IncompleteIndication

void IncompleteIndication(
  StatusReport & aReport
)

Xử lý lỗi ràng buộc.

Phương thức này được gọi và đến lượt nó, gọi các trình xử lý lớp cao hơn khi liên kết không thành công SAU KHI hoàn thành, tức là sau khi CompleteConfirm () được gọi với trạng thái biểu thị thành công.

Chi tiết
Thông số
[in] aReport
Tham chiếu đến một Báo cáo trạng thái mô tả những gì đã xảy ra.
Xem thêm:
CompleteConfirm (Báo cáo trạng thái & aReport) .

Trong đó

WEAVE_ERROR Init(
  const uint64_t & aPeerNodeId
)

Khởi tạo Ràng buộc chỉ với một ID nút.

Đ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ố
[in] aPeerNodeId
Tham chiếu đến ID 64 bit của đích ràng buộc.
Giá trị trả lại
WEAVE_NO_ERROR
Về thành công.
WEAVE_ERROR_INVALID_ARGUMENT
Nếu ràng buộc được chỉ định dưới mức.

Trong đó

WEAVE_ERROR Init(
  const uint64_t & aPeerNodeId,
  uint8_t aTransport
)

Khởi tạo một đối tượng Binding dựa trên ID ngang hàng và phương tiện truyền tải.

Chi tiết
Thông số
[in] aPeerNodeId
Tham chiếu đến định danh nút 64 bit của đích liên kết.
[in] aTransport
Đặc điểm kỹ thuật vận chuyển, từ WeaveTransportOption.
Giá trị trả lại
WEAVE_NO_ERROR
Về thành công.
WEAVE_ERROR_INVALID_ARGUMENT
Nếu ràng buộc được chỉ định dưới mức.

Trong đó

WEAVE_ERROR Init(
  const uint64_t & aServiceEpt,
  WeaveServiceManager *aServiceMgr,
  WeaveAuthMode aAuthMode
)

Khởi tạo một đối tượng Ràng buộc 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. Liên kết 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 này trong quy trình có thể được gửi đ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ố
[in] aServiceEpt
Tham chiếu đến số nhận dạng 64 bit cho điểm cuối Dịch vụ Weave quan tâm.
[in] aServiceMgr
Một con trỏ đến phiên bản trình quản lý dịch vụ để sử dụng trong việc tìm kiếm một tầng dịch vụ và kết nối với nó.
[in] aAuthMode
Chế độ xác thực để sử dụng trong kết nối.
Giá trị trả lại
WEAVE_NO_ERROR
Về thành công.
WEAVE_ERROR_INVALID_ARGUMENT
Nếu ràng buộc được chỉ định dưới mức.

Trong đó

WEAVE_ERROR Init(
  WeaveConnection *aConnection
)

Khởi tạo một đối tượng Binding bằng WeaveConnection .

Chi tiết
Thông số
[in] aConnection
Một con trỏ đến WeaveConnection để sử dụng làm cơ sở cho liên kết ..
Giá trị trả lại
WEAVE_NO_ERROR
Về thành công.
WEAVE_ERROR_INVALID_ARGUMENT
Nếu ràng buộc được chỉ định dưới mức.

Hoàn tất

bool IsComplete(
  void
)

Kiểm tra xem 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.
Xem thêm:
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ó Free () được gọi trên nó và đã không được sử dụng kể 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. Các ứng dụng có thể coi việc gọi UncompleteRequest () như một phần của quá trình dọn dẹp do 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. Các ứng dụng có thể coi việc gọi UncompleteRequest () như một phần của quá trình dọn dẹp do lỗi.

Chi tiết
Thông số
[in] aErr
Nếu không phải WEAVE_NO_ERROR, kết nối hiện có, nếu có, sẽ bị hủy thay vì đóng một cách duyên dáng.
Xem thêm:
UncompleteRequest (vô hiệu)

~ Ràng buộc

virtual  ~Binding(
  void
)

Bộ hủy cho các đối tượng Ràng buộc .

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ở.