nl::Weave::Profiles::DataManagement_Current::CommandSender

#include <src/lib/profiles/data-management/Current/CommandSender.h>

Tóm tắt

Lưu ý: Lớp này đóng gói các chi tiết về giao thức của việc gửi lệnh, giúp đơn giản hoá cơ chế liên quan đến ứng dụng. Ứng dụng cung cấp một PacketBuffer chứa tải trọng của lệnh cũng như một tập hợp các đối số tuỳ chọn làm thay đổi nội dung của tiêu đề lệnh cũng như hành vi của lệnh. Thực sự, tiện ích của trình bao bọc này trong việc xử lý lệnh còn hạn chế, chủ yếu là do tính phức tạp/tính linh hoạt của việc xác thực bảo mật và chuyển đổi tuần tự/huỷ chuyển đổi tuần tự dữ liệu.

Thông tin chi tiết về việc xác thực lệnh vẫn chưa được xác định

Lớp này cũng giúp ứng dụng dự đoán xem dữ liệu trong TraitDataSink được liên kết có theo dõi hiệu ứng phụ của lệnh (dựa trên phiên bản được cung cấp trong phản hồi lệnh) hay không. Ứng dụng chịu trách nhiệm quản lý việc lưu trữ của đối tượng đó.

Liên kết dệt

Bạn có thể khởi tạo một đối tượng của lớp này bằng Liên kết Weave. Thao tác này sẽ đóng vai trò là Liên kết mặc định được dùng để gửi Lệnh. Người dùng cũng có thể cung cấp Binding (Liên kết) cho mỗi lệnh gọi của SendCommand(). Thao tác này sẽ ghi đè Binding (Liên kết) mặc định. Bạn không cần cung cấp Binding mặc định. Tuy nhiên, mọi liên kết được cung cấp cho CommandSender đều phải được khởi tạo.

EventCallback

Người dùng phải xác định một hàm thuộc loại này nếu họ muốn được cập nhật về các sự kiện xảy ra sau khi gửi lệnh (xem phần "Sự kiện API" bên dưới). Giá trị này có thể là giá trị NULL nếu người dùng không quan tâm đến điều gì sẽ xảy ra sau khi lệnh được gửi đi.

Sự kiện API

Sau đây là những sự kiện có thể xảy ra sau khi gửi Command:

CommunicationError

Đã xảy ra lỗi trong khi tạo hoặc gửi Command hoặc trong khi chờ phản hồi. Ví dụ về lỗi có thể xảy ra trong khi chờ phản hồi là các lỗi chính hoặc đóng kết nối ngoài dự kiến. Lý do xảy ra lỗi sẽ được đưa vào đối số InEventParam dành cho trình xử lý EventCallback.

InProgressReceived

Người nhận có thể gửi thư "đang tiếp diễn" cho biết rằng đã nhận được Lệnh nhưng chưa hoàn tất. Sau khi hoàn tất, người nhận sẽ gửi một Phản hồi hoặc StatusReport. Gửi 'đang tiến hành' là không bắt buộc.

StatusReportReceived

Việc nhận được StatusReport ngụ ý rằng đã xảy ra lỗi khi xử lý Command. Bạn có thể truy cập vào StatusReport thông qua InEventParam.

ResponseReceived

Khi nhận được Phản hồi thì tức là người nhận Command đã xử lý Command thành công. Phản hồi có thể chứa hoặc không chứa trọng tải. Nếu muốn giữ lại vùng đệm gói, ứng dụng có thể gọi ExchangeContext::AddRef() để tăng số lượng ref.

Loại công khai

EventCallback)(void *const aAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutEventParam) typedef
void(*
EventType enum

Các thuộc tính công khai

mAppState = NULL
void *
mSyncronizedTraitState = NULL

Hàm tĩnh công khai

DefaultEventHandler(void *aAppState, EventType aEvent, const InEventParam & aInParam, OutEventParam & aOutParam)
void

Hàm công khai

Close(bool aAbortNow)
void
Init(nl::Weave::Binding *aBinding, const EventCallback aEventCallback, void *const aAppState)
SendCommand(nl::Weave::PacketBuffer *aPayload, nl::Weave::Binding *aBinding, ResourceIdentifier & aResourceId, uint32_t aProfileId, uint32_t aCommandType)
SendCommand(nl::Weave::PacketBuffer *aPayload, nl::Weave::Binding *aBinding, SendParams & aSendParams)
SetSynchronizedTraitState(SynchronizedTraitState *aTraitState)
void

Cấu trúc

nl::Weave::Profiles::DataManagement_Current::CommandSender::InEventParam

Dữ liệu được người nhận lệnh tuỳ chỉnh trả về cho người gửi.

nl::Weave::Profiles::DataManagement_Current::CommandSender::OutEventParam

Dữ liệu được trả về đối tượng CommandSender qua hàm EventCallback.

nl::Weave::Profiles::DataManagement_Current::CommandSender::SendParams

Đóng gói các đối số cần truyền vào SendCommand().

nl::Weave::Profiles::DataManagement_Current::CommandSender::SynchronizedTraitState

Loại công khai

EventCallback

void(* EventCallback)(void *const aAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutEventParam)

EventType

 EventType

Các thuộc tính công khai

mAppState

void * mAppState = NULL

mSyncronizedTraitState

SynchronizedTraitState * mSyncronizedTraitState = NULL

Hàm tĩnh công khai

DefaultEventHandler

void DefaultEventHandler(
  void *aAppState,
  EventType aEvent,
  const InEventParam & aInParam,
  OutEventParam & aOutParam
)

Hàm công khai

Đóng

void Close(
  bool aAbortNow
)

Init

WEAVE_ERROR Init(
  nl::Weave::Binding *aBinding,
  const EventCallback aEventCallback,
  void *const aAppState
)

SendCommand

WEAVE_ERROR SendCommand(
  nl::Weave::PacketBuffer *aPayload,
  nl::Weave::Binding *aBinding,
  ResourceIdentifier & aResourceId,
  uint32_t aProfileId,
  uint32_t aCommandType
)

SendCommand

WEAVE_ERROR SendCommand(
  nl::Weave::PacketBuffer *aPayload,
  nl::Weave::Binding *aBinding,
  SendParams & aSendParams
)

SetSynchronizedTraitState

void SetSynchronizedTraitState(
  SynchronizedTraitState *aTraitState
)