nl::Weave::Profiles::DataManagement_Legacy::DMClient

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

Lớp cơ sở trừu tượng dành cho các ứng dụng WDM dành riêng cho ứng dụng.

Tóm tắt

DMClient là ứng dụng WDM tiêu chuẩn. Quá trình triển khai có bao gồm gói thuê bao/thông báo (không bắt buộc). Đây là sự kết hợp của lớp ProtocolEngine của DM, lớp này xử lý việc chuyển đổi giao tiếp và lớp ClientDataManager hoàn toàn trừu tượng, với một số phương thức liên quan đến gói thuê bao được triển khai để các lớp cao hơn không phải lo lắng về chúng.

Các trình xử lý cho các tác vụ liên quan đến gói thuê bao chủ yếu hoạt động như một bộ chuyển đổi mỏng trên đối tượng ClientNotifier. Trình triển khai lớp con cần cẩn thận trong việc gọi các phương thức siêu lớp có liên quan để xoay vòng trình quản lý gói thuê bao.

Phương thức yêu cầu DMClient thường có 2 chữ ký, một chữ ký có mã nhận dạng nút đích rõ ràng và chữ ký còn lại có đích đến đã chỉ định. Trong cả hai trường hợp, khả năng gửi thông báo đến nhà xuất bản phụ thuộc vào một mối liên kết có sẵn trong ứng dụng. Tuy nhiên, trong trường hợp đầu tiên, mã đích đến được dùng để chọn giữa nhiều đích đến được liên kết. Trong trường hợp thứ hai, mục đầu tiên trong bảng liên kết sẽ được chọn làm mặc định. Điều này rất hữu ích, ví dụ như trong trường hợp khách hàng chỉ được liên kết với một nhà xuất bản duy nhất.

Tính kế thừa

Kế thừa từ:
  nl::Weave::Profiles::DataManagement_Legacy::ProtocolEngine
  nl::Weave::Profiles::DataManagement_Legacy::ClientDataManager

Hàm khởi tạo và hàm phá

DMClient(void)
Hàm khởi tạo mặc định cho đối tượng DMClient.
~DMClient(void)
Hàm khởi tạo cho các đối tượng DMClient.
ViewRequest(const uint64_t & aDestinationId, ReferencedTLVData & aPathList, uint16_t aTxnId, uint32_t aTimeout)
virtual WEAVE_ERROR
Yêu cầu chế độ xem dữ liệu đã xuất bản.
ViewRequest(ReferencedTLVData & aPathList, uint16_t aTxnId, uint32_t aTimeout)
virtual WEAVE_ERROR
Yêu cầu chế độ xem dữ liệu về nhà xuất bản mặc định.
UpdateRequest(const uint64_t & aDestinationId, ReferencedTLVData & aDataList, uint16_t aTxnId, uint32_t aTimeout)
virtual WEAVE_ERROR
Yêu cầu cập nhật dữ liệu đã xuất bản.
UpdateRequest(ReferencedTLVData & aDataList, uint16_t aTxnId, uint32_t aTimeout)
virtual WEAVE_ERROR
Yêu cầu cập nhật dữ liệu trên nhà xuất bản mặc định.

Thuộc tính được bảo vệ

mUpdatePool[kUpdatePoolSize]
mViewPool[kViewPoolSize]

Hàm công khai

CancelTransactionRequest(uint16_t aTxnId, WEAVE_ERROR aError)
Yêu cầu huỷ một giao dịch đang thực thi.
Clear(void)
virtual void
Xoá trạng thái nội bộ được liên kết với đối tượng DMClient.
Finalize(void)
virtual void
Tắt DMClient đang hoạt động.
IncompleteIndication(Binding *aBinding, StatusReport & aReport)
virtual void
Xử lý trường hợp "chưa hoàn tất" của một liên kết mà ứng dụng đang sử dụng.

Hàm được bảo vệ

NewUpdate(void)
Update *
NewView(void)
View *

ViewRequest

virtual WEAVE_ERROR ViewRequest(
  const uint64_t & aDestinationId,
  ReferencedTLVData & aPathList,
  uint16_t aTxnId,
  uint32_t aTimeout
)

Yêu cầu chế độ xem dữ liệu đã xuất bản.

Yêu cầu chế độ xem dữ liệu do một nhà xuất bản từ xa được chỉ định quản lý và lưu trữ.

Thông tin chi tiết
Thông số
[in] aDestinationId
Tham chiếu đến mã nút 64 bit của nhà xuất bản từ xa.
[in] aPathList
Tham chiếu đến đối tượng ReferencedTLVData chứa danh sách đường dẫn được mã hoá TLV cho biết dữ liệu được yêu cầu.
[in] aTxnId
Giá trị nhận dạng cho giao dịch WDM được thiết lập để quản lý hoạt động xem này.
[in] aTimeout
Thời gian tối đa tính bằng mili giây để chờ phản hồi lượt xem.
Giá trị trả về
WEAVE_NO_ERROR
Khi thành công.
WEAVE_ERROR_NO_MEMORY
Trường hợp không phân bổ được giao dịch.
Trả về
Nếu không, lỗi WEAVE_ERROR cho biết không thể khởi chạy hoặc bắt đầu giao dịch.

ViewRequest

virtual WEAVE_ERROR ViewRequest(
  ReferencedTLVData & aPathList,
  uint16_t aTxnId,
  uint32_t aTimeout
)

Yêu cầu chế độ xem dữ liệu về nhà xuất bản mặc định.

Yêu cầu chế độ xem dữ liệu do nhà xuất bản "mặc định" quản lý và lưu trữ, tức là nhà xuất bản đầu tiên (hoặc duy nhất) trong bảng liên kết của ứng dụng.

Thông tin chi tiết
Thông số
[in] aPathList
Tham chiếu đến đối tượng ReferencedTLVData chứa danh sách đường dẫn được mã hoá TLV cho biết dữ liệu được yêu cầu.
[in] aTxnId
Giá trị nhận dạng cho giao dịch WDM được thiết lập để quản lý hoạt động xem này.
[in] aTimeout
Thời gian tối đa tính bằng mili giây để chờ phản hồi lượt xem.
Giá trị trả về
WEAVE_NO_ERROR
Khi thành công.
WEAVE_ERROR_NO_MEMORY
Trường hợp không phân bổ được giao dịch.
Trả về
Nếu không, lỗi WEAVE_ERROR cho biết không thể khởi chạy hoặc bắt đầu giao dịch.

UpdateRequest

virtual WEAVE_ERROR UpdateRequest(
  const uint64_t & aDestinationId,
  ReferencedTLVData & aDataList,
  uint16_t aTxnId,
  uint32_t aTimeout
)

Yêu cầu cập nhật dữ liệu đã xuất bản.

Yêu cầu nhà xuất bản từ xa cập nhật dữ liệu trong phần quản lý.

Thông tin chi tiết
Thông số
[in] aDestinationId
Tham chiếu đến mã nhận dạng nút 64 bit của nhà xuất bản từ xa mà yêu cầu đang được gửi đến.
[in] aDataList
Mã tham chiếu đến đối tượng ReferencedTLVData chứa danh sách dữ liệu được mã hoá TLV chứa nội dung trình bày bản cập nhật, bao gồm cả các đường dẫn áp dụng bản cập nhật.
[in] aTxnId
Giá trị nhận dạng của giao dịch được thiết lập để quản lý yêu cầu cập nhật.
[in] aTimeout
Thời gian tối đa tính bằng mili giây để chờ báo cáo trạng thái tương ứng.
Trả về
WEAVE_NO_ERROR khi thành công hoặc WEAVE_ERROR_NO_MEMORY nếu không phân bổ được giao dịch cập nhật. Nếu không, hãy trả về WEAVE_ERROR cho biết lỗi cập nhật.

UpdateRequest

virtual WEAVE_ERROR UpdateRequest(
  ReferencedTLVData & aDataList,
  uint16_t aTxnId,
  uint32_t aTimeout
)

Yêu cầu cập nhật dữ liệu trên nhà xuất bản mặc định.

Yêu cầu nhà xuất bản từ xa cập nhật dữ liệu trong phần quản lý. Phiên bản này chuyển yêu cầu đến nhà xuất bản là mục tiêu của liên kết mặc định của khách hàng.

Thông tin chi tiết
Thông số
[in] aDataList
Mã tham chiếu đến đối tượng ReferencedTLVData chứa danh sách dữ liệu được mã hoá TLV chứa nội dung trình bày bản cập nhật, bao gồm cả các đường dẫn áp dụng bản cập nhật.
[in] aTxnId
Giá trị nhận dạng của giao dịch được thiết lập để quản lý yêu cầu cập nhật.
[in] aTimeout
Thời gian tối đa tính bằng mili giây để chờ báo cáo trạng thái tương ứng.
Trả về
WEAVE_NO_ERROR khi thành công hoặc WEAVE_ERROR_NO_MEMORY nếu không phân bổ được giao dịch cập nhật. Nếu không, hãy trả về WEAVE_ERROR cho biết lỗi cập nhật.

Thuộc tính được bảo vệ

mUpdatePool

Update mUpdatePool[kUpdatePoolSize]

mViewPool

View mViewPool[kViewPoolSize]

Hàm công khai

CancelTransactionRequest

WEAVE_ERROR CancelTransactionRequest(
  uint16_t aTxnId,
  WEAVE_ERROR aError
)

Yêu cầu huỷ một giao dịch đang thực thi.

Phương thức này không tạo ra lưu lượng truy cập mạng mà chỉ giải phóng tài nguyên được phân bổ cho(các) giao dịch đã chỉ định

Thông tin chi tiết
Thông số
[in] aTxnId
Số giao dịch bị huỷ. Nếu bạn cung cấp kTransactionIdNotSpecified, tất cả giao dịch sẽ bị huỷ.
[in] aError
WEAVE_ERROR để báo cáo khi huỷ giao dịch.
Trả về
WEAVE_NO_ERROR khi giao dịch thành công hoặc WEAVE_ERROR cho biết không thể huỷ giao dịch.

Xoá

virtual void Clear(
  void
)

Xoá trạng thái nội bộ được liên kết với đối tượng DMClient.

Cụ thể, phương thức này sẽ xoá tất cả nhóm giao dịch của khách hàng. Bạn nên sử dụng phương thức Finalize() đối với những ứng dụng khách vì phương thức này cũng huỷ các gói thuê bao, đồng thời dọn dẹp giao dịch và bảng liên kết.

Xem thêm:
Finalize()

DMClient

 DMClient(
  void
)

Hàm khởi tạo mặc định cho đối tượng DMClient.

Xoá tất cả trạng thái nội bộ. DMClient yêu cầu khởi chạy thêm bằng Init() trước khi sử dụng.

Hoàn tất

virtual void Finalize(
  void
)

Tắt DMClient đang hoạt động.

Xoá mọi trạng thái hoạt động liên kết với ứng dụng và xoá mọi gói thuê bao có liên quan khỏi trình thông báo. Sau khi thực hiện lệnh gọi đến Finalize(), DMClient có thể được khởi chạy lại chỉ bằng cách gọi Init(). Finalize() được gọi bởi hàm khởi tạo DMClient nhưng có thể được gọi trong trường hợp DMClient yêu cầu dọn dẹp, ví dụ như trong trường hợp không thành công hoặc tắt tạm thời, nhưng có thể cần phải hoàn tất lại sau này.

IncompleteIndication

virtual void IncompleteIndication(
  Binding *aBinding,
  StatusReport & aReport
)

Xử lý trường hợp "chưa hoàn tất" của một liên kết mà ứng dụng đang sử dụng.

Khi một liên kết bị lỗi đột ngột, chẳng hạn như nếu kết nối trong liên kết bị đóng, thì phương thức này sẽ được gọi.

Thông tin chi tiết
Thông số
[in] aBinding
Con trỏ đến Binding (Liên kết) đã trở nên chưa hoàn chỉnh.
[in] aReport
Mã tham chiếu đến báo cáo trạng thái có nêu lý do không đạt.

~DMClient

virtual  ~DMClient(
  void
)

Hàm khởi tạo cho các đối tượng DMClient.

Xoá tất cả trạng thái nội bộ và huỷ các gói thuê bao đang chờ xử lý (nếu cần).

Hàm được bảo vệ

NewUpdate

Update * NewUpdate(
  void
)

NewView

View * NewView(
  void
)