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 lệnh gửi, đơn giản hóa cơ chế liên quan đến các ứng dụng. Ứng dụng này cung cấp một PacketBuffer chứa phần dữ liệu tải của lệnh cũng như một tập hợp các đối số không bắt buộc để 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 khi xử lý lệnh thực sự bị hạn chế, chủ yếu do tính phức tạp/linh hoạt liên quan đến xác thực bảo mật và tuần tự hóa/tuần tự giảm dữ liệu.
Thông tin chi tiết về việc xác thực lệnh vẫn là TBD
Lớp này cũng giúp các ứng dụng dự đoán nếu dữ liệu trong một TraitDataSink liên kết đã phát hiện tác dụng phụ của thông báo (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ữ đối tượng đó.
Dệt liên kết
Một đối tượng của lớp này có thể được điều chỉnh bằng một Binding liên kết. Tham số này sẽ đóng vai trò là Binding mặc định để sử dụng để gửi các lệnh. Người dùng này cũng có thể cung cấp một Binding cho mỗi lệnh gọi của SendCommand(), lệnh này sẽ ghi đè Binding mặc định. Không cần thiết phải cung cấp một Liên kết 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.
Lệnh gọi lại sự kiện
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 "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 điều gì sẽ xảy ra sau khi gửi lệnh.
Sự kiện API
Sau đây là các sự kiện có thể xảy ra sau khi gửi lệnh:
Lỗi kết nối
Đã 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ề các lỗi có thể xảy ra khi chờ phản hồi là các lỗi chính hoặc tình trạng kết nối bất ngờ. Lý do lỗi sẽ được đưa vào đối số InEventParam đối với trình xử lý eventCallback.
Đang nhận
Người nhận có thể gửi thông báo\39;đang xử lý#39; cho biết rằng Command đã được nhận, nhưng chưa hoàn thành. Sau khi hoàn thành, người nhận sẽ gửi Phản hồi hoặc Trạng thái. Đang gửi tin nhắn & # 39; không bắt buộc.
Đã nhận được báo cáo trạng thái
Việc nhận thông báo Trạng thái cho biết đã có lỗi khi xử lý Command. Bạn có thể truy cập vào Báo cáo trạng thái thông qua InEventParam.
Đã nhận được phản hồi
Việc nhận được Phản hồi ngụ ý rằng người nhận Command đã xử lý thành công Command. Phản hồi có thể chứa trọng tải hoặc có thể không. Nếu hệ thống muốn giữ bộ đệm gói, bộ xử lý đó có thể gọi ExchangeContext::AddRef() để tăng số lượng tài liệu tham chiếu.
Loại công khai |
|
---|---|
EventCallback)(void *const aAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutEventParam)
|
typedefvoid(*
|
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:: |
Dữ liệu do người nhận lệnh tùy chỉnh trả về cho người gửi. |
nl:: |
Dữ liệu được trả về trở lại đối tượng CommandCommand từ một hàm EventCallback. |
nl:: |
Đóng gói các đối số cần chuyển vào SendCommand(). |
nl:: |
Loại công khai
Lệnh gọi lại sự kiện
void(* EventCallback)(void *const aAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutEventParam)
Loại sự kiện
EventType
Thuộc tính công khai
mAppState
void * mAppState = NULL
mSyncronizeTraitState
SynchronizedTraitState * mSyncronizedTraitState = NULL
Hàm tĩnh công khai
Trình xử lý sự kiện mặc định
void DefaultEventHandler( void *aAppState, EventType aEvent, const InEventParam & aInParam, OutEventParam & aOutParam )
Hàm công khai
Đóng
void Close( bool aAbortNow )
Số nguyên
WEAVE_ERROR Init( nl::Weave::Binding *aBinding, const EventCallback aEventCallback, void *const aAppState )
Lệnh gửi
WEAVE_ERROR SendCommand( nl::Weave::PacketBuffer *aPayload, nl::Weave::Binding *aBinding, ResourceIdentifier & aResourceId, uint32_t aProfileId, uint32_t aCommandType )
Lệnh gửi
WEAVE_ERROR SendCommand( nl::Weave::PacketBuffer *aPayload, nl::Weave::Binding *aBinding, SendParams & aSendParams )