nl :: Dệt :: Hồ sơ :: DataManagement_Current :: CommandSender
#include <src/lib/profiles/data-management/Current/CommandSender.h>
Tóm lược
Lưu ý: Lớp này đóng gói các chi tiết giao thức của việc gửi lệnh, đơn giản hóa cơ chế liên quan cho các ứng dụng. Ứng dụng cung cấp PacketBuffer chứa trọng tải của lệnh cũng như một tập hợp các đối số tùy 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. Tiện ích của trình bao bọc này xung quanh việc xử lý lệnh thực sự bị hạn chế, chủ yếu là do sự 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 / hủy tuần tự hóa dữ liệu.
Chi tiết để xác thực lệnh vẫn là TBD
Lớp này cũng giúp các ứng dụng suy ra nếu dữ liệu trong một TraitDataSink được liên kết đã bắt kịp các tác dụng phụ của lệnh commmand (dựa trên phiên bản được cung cấp trong phản hồi lệnh). Ứng dụng có trách nhiệm quản lý lưu trữ của đối tượng đó.
Weave Binding
Một đối tượng của lớp này có thể được phức tạp hóa bằng Weave Binding , nó sẽ đóng vai trò là Binding mặc định được sử 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 SendCommand (), nó sẽ ghi đè lên Binding mặc định. Không cần thiết phải cung cấp ràng buộc mặc định, tuy nhiên bất kỳ ràng buộc nào đượ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 "Sự kiện API" bên dưới). Điều này có thể là NULL nếu người dùng không quan tâm điều gì xảy ra sau khi lệnh được gửi.
Sự kiện API
Các sự kiện sau đây là kết quả có thể xảy ra sau khi gửi Lệnh :
CommunicationError
Đã xảy ra lỗi khi tạo hoặc gửi Lệnh hoặc trong khi chờ phản hồi. Ví dụ về các lỗi có thể xảy ra trong khi chờ phản hồi là lỗi chính hoặc đóng kết nối không mong muốn. Lý do báo lỗi sẽ được chứa trong các InEventParam lập luận để xử lý EventCallback.
InProgressRenition
Người nhận có thể gửi một thông báo 'đang xử lý' cho biết rằng Lệnh đã được nhận, nhưng chưa được hoàn thành. Sau khi hoàn tất, người nhận sẽ gửi Phản hồi hoặc Báo cáo trạng thái. Không cần gửi thông báo 'đang xử lý'.
StatusReportReceive
Receipt của một StatusReport ngụ ý rằng đã xảy ra lỗi khi xử lý Lệnh . StatusReport có thể được truy cập thông qua InEventParam .
Đáp ứng nhận được
Nhận được Phản hồi ngụ ý rằng người nhận Lệnh đã xử lý Lệnh thành công. Phản hồi có thể chứa một trọng tải hoặc có thể không. Nếu applcation muốn giữ bộ đệm gói, nó có thể gọi ExchangeContext :: AddRef () để tăng số lượng tham chiếu.
Các 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 cộng | |
---|---|
mAppState = NULL | void * |
mSyncronizedTraitState = NULL |
Chức năng tĩnh công khai | |
---|---|
DefaultEventHandler (void *aAppState, EventType aEvent, const InEventParam & aInParam, OutEventParam & aOutParam) | void |
Chức năng công cộng | |
---|---|
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 trả lại cho người gửi bởi người nhận lệnh tùy chỉnh. |
nl :: Weave :: Profiles :: DataManagement_Current :: CommandSender :: OutEventParam | Dữ liệu trở lại đối tượng CommandSender từ một hàm EventCallback. |
nl :: Weave :: Profiles :: DataManagement_Current :: CommandSender :: SendParams | Đóng gói các đối số sẽ được truyền vào SendCommand (). |
nl :: Weave :: Profiles :: DataManagement_Current :: CommandSender :: SynchronizedTraitState |
Các loại công khai
EventCallback
void(* EventCallback)(void *const aAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutEventParam)
Loại sự kiện
EventType
Thuộc tính công cộng
mAppState
void * mAppState = NULL
mSyncronizedTraitState
SynchronizedTraitState * mSyncronizedTraitState = NULL
Chức năng tĩnh công khai
DefaultEventHandler
void DefaultEventHandler( void *aAppState, EventType aEvent, const InEventParam & aInParam, OutEventParam & aOutParam )
Chức năng công cộng
Đóng
void Close( bool aAbortNow )
Trong đó
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 )