nl::Weave::Profiles::DataManagement_Current::Command

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

Tóm tắt

Lưu ý: Lớp này được thiết kế để ẩn một thông tin chi tiết nhất định trong quá trình xử lý lệnh. Quyết định được đưa ra để ẩn thông tin chi tiết về ExchangeContext và phương thức xác thực trình xác thực, đồng thời chuyển việc xử lý PacketBuffers sang lớp ứng dụng. 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

Để điều chỉnh thời gian truyền lại cho Thông báo Đang tiến hành, Báo cáo trạng thái cũng như thông báo Phản hồi, lớp ứng dụng sẽ phải xử lý bằng cách nào đó với đối tượng ExchangeContext. Phương pháp hay nhất vẫn là TBD, nhưng lớp ứng dụng có 3 lựa chọn sau:

1) Thu nạp ngữ cảnh trao đổi thông qua GetExchangeContext và trực tiếp đánh giá/điều chỉnh. 2) Phân bổ trước và định cấu hình Binding trong quá trình khởi động, trước khi có bất kỳ lệnh nào đến và định cấu hình lệnh đó đúng cách 3) Tạo một Binding tạm thời bằng hàm BindingPool::NewResponseerBindingFromExchangeContext

Trong cả (2) và (3), lớp ứng dụng có thể thực thi cài đặt bảo mật/thời gian thông qua Binding::ConfigureAvailableExchangeContext. Liên kết không bao giờ được dùng để tạo ngữ cảnh trao đổi mới cho các lệnh tuỳ chỉnh, vì vậy, bạn không cần phải lưu trữ nó trong tên người dùng này.

Vùng đệm gói yêu cầu cũng không được lưu trữ trong tên người dùng này, vì không có mục đích sử dụng rõ ràng. Điều này đặc biệt đúng nếu lớp ứng dụng có thể xử lý lệnh này và trực tiếp gửi phản hồi.

Lớp ứng dụng sẽ nhận được vùng đệm gói từ cùng lệnh gọi lại mà lớp này nhận được tên người dùng lệnh này. Nếu quyết định xử lý lệnh này theo cách không đồng bộ, thì ứng dụng sẽ phải lưu trữ cả tay điều khiển lệnh và vùng đệm gói.

Loại công khai

CommandFlags{
  kCommandFlag_MustBeVersionValid = 0x0001,
  kCommandFlag_InitiationTimeValid = 0x0002,
  kCommandFlag_ActionTimeValid = 0x0004,
  kCommandFlag_ExpiryTimeValid = 0x0008,
  kCommandFlag_IsOneWay = 0x0010
}
enum
Các bit cờ Command.
CommandFlags typedef
Các bit cờ Command.

Thuộc tính công khai

actionTimeMicroSecond
int64_t
commandType
uint64_t
expiryTimeMicroSecond
int64_t
initiationTimeMicroSecond
int64_t
mustBeVersion
uint64_t

Hàm công khai

Close(void)
void
GetExchangeContext(void) const
Truy xuất đối tượng ngữ cảnh trao đổi mà lệnh đến này sử dụng.
IsActionTimeValid(void) const
bool
IsExpiryTimeValid(void) const
bool
IsInitiationTimeValid(void) const
bool
IsMustBeVersionValid(void) const
bool
IsOneWay(void) const
bool
SendError(uint32_t aProfileId, uint16_t aStatusCode, WEAVE_ERROR aWeaveError)
SendInProgress(void)
SendResponse(uint32_t traitInstanceVersion, nl::Weave::System::PacketBuffer *apPayload)
ValidateAuthenticator(nl::Weave::System::PacketBuffer *aRequestBuffer)

Loại công khai

CommandFlags

 CommandFlags

Các bit cờ Command.

Thuộc tính
kCommandFlag_ActionTimeValid

Đặt thời gian hành động hợp lệ.

kCommandFlag_ExpiryTimeValid

Thiết lập thời gian hết hạn hợp lệ.

kCommandFlag_InitiationTimeValid

Đặt thời gian bắt đầu hợp lệ.

kCommandFlag_IsOneWay

Đặt khi lệnh một chiều.

kCommandFlag_MustBeVersionValid

Đặt thời điểm trường phiên bản hợp lệ.

CommandFlags

enum nl::Weave::Profiles::DataManagement_Current::Command::CommandFlags CommandFlags

Các bit cờ Command.

Thuộc tính công khai

actionTimeMicroSecond

int64_t actionTimeMicroSecond

commandType

uint64_t commandType

expiryTimeMicroSecond

int64_t expiryTimeMicroSecond

initiationTimeMicroSecond

int64_t initiationTimeMicroSecond

mustBeVersion

uint64_t mustBeVersion

Hàm công khai

Đóng

void Close(
  void
)

GetExchangeContext

nl::Weave::ExchangeContext * GetExchangeContext(
  void
) const 

Truy xuất đối tượng ngữ cảnh trao đổi mà lệnh đến này sử dụng.

Thông tin chi tiết
Trả về
Con trỏ đến đối tượng ngữ cảnh trao đổi được lệnh đến này sử dụng

IsActionTimeValid

bool IsActionTimeValid(
  void
) const 

IsExpiryTimeValid

bool IsExpiryTimeValid(
  void
) const 

IsInitiationTimeValid

bool IsInitiationTimeValid(
  void
) const 

IsMustBeVersionValid

bool IsMustBeVersionValid(
  void
) const 

IsOneWay

bool IsOneWay(
  void
) const 

SendError

WEAVE_ERROR SendError(
  uint32_t aProfileId,
  uint16_t aStatusCode,
  WEAVE_ERROR aWeaveError
)

SendInProgress

WEAVE_ERROR SendInProgress(
  void
)

SendResponse

WEAVE_ERROR SendResponse(
  uint32_t traitInstanceVersion,
  nl::Weave::System::PacketBuffer *apPayload
)

ValidateAuthenticator

WEAVE_ERROR ValidateAuthenticator(
  nl::Weave::System::PacketBuffer *aRequestBuffer
)