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 thông tin chi tiết về giao thức của việc gửi lệnh, đơn giản hoá cơ chế liên quan đến các ứng dụng. Ứng dụng này cung cấp một Gói đệm chứa tải trọng của lệnh cũng như một tập hợp các đối số không bắt buộc làm thay đổi nội dung của tiêu đề lệnh cũng như hành vi của lệnh. Tiện ích của trình bao bọc này trong việc xử lý lệnh thực sự bị hạn chế, chủ yếu là do tính phức tạp/linh hoạt liên quan đến việc xác thực bảo mật cũng như chuyển đổi tuần tự/huỷ chuyển đổi tuần tự dữ liệu.

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

Lớp này cũng giúp các ứng dụng suy luận xem dữ liệu trong một TraitDataSink được liên kết có bắt kịp tác dụng phụ của lệnh giao tiếp hay không (dựa trên phiên bản được cung cấp trong phản hồi lệnh). Ứ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 kiểu dệt

Bạn có thể khởi động một đối tượng của lớp này bằng Binding (Liên kết) Weave. Giá trị này sẽ đóng vai trò là Binding mặc định dùng để gửi các lệnh. Người dùng cũng có thể cung cấp Binding cho mỗi lệnh gọi của SendCommand(), thao tác này sẽ ghi đè Binding mặc định. Bạn không cần phải 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 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 "Sự kiện API" bên dưới). Giá trị này có thể là NULL nếu người dùng không quan tâm đến điều gì xảy ra sau khi lệnh được gửi.

Sự kiện API

Sau đây là những kết quả có thể xảy ra sau khi gửi một Lệnh:

CommunicationError

Đã xảy ra lỗi 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à lỗi chính hoặc lỗi đóng kết nối ngoài dự kiến. Lý do lỗi sẽ có trong đối số InEventParam cho trình xử lý EventCallback.

InProgressReceived

Người nhận có thể gửi thông báo "đang xử lý" cho biết Lệnh đã được nhận 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 (Báo cáo trạng thái). Không cần gửi thông báo "đang xử lý".

StatusReportReceived

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

ResponseReceived

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

Loại công khai

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

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ề cho đối tượng CommandSender từ hàm EventCallback.

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

Đóng gói các đối số để 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

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
)

Bắt đầu

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
)