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 chi tiết nhất định trong quá trình xử lý lệnh. Chúng tôi đã đưa ra quyết định ẩn thông tin chi tiết về ExchangeContext và xác thực trình xác thực, đồng thời để việc xử lý PacketBuffers cho lớp ứng dụng. 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

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

1) Lấy bối cảnh Exchange thông qua GetExchangeContext và trực tiếp đánh giá/điều chỉnh bối cả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 xuất hiện và định cấu hình lệnh đó đúng cách 3) Tạo Binding tạm thời bằng hàm này BindingPool::NewResponderBindingFromExchangeContext

Trong cả (2) và (3), lớp ứng dụng có thể thực thi chế độ cài đặt bảo mật/thời gian thông qua Binding::ConfigureCurrentExchangeContext. 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ữ liên kết này 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 xử lý này vì không có mục đích sử dụng rõ ràng nào. Điều này đặc biệt đúng nếu lớp ứng dụng có thể xử lý lệnh này và gửi trực tiếp phản hồi.

Lớp ứng dụng sẽ nhận được vùng đệm gói từ cùng một lệnh gọi lại mà lớp nhận được trình xử lý lệnh này. Nếu quyết định xử lý lệnh này theo cách không đồng bộ, ứng dụng sẽ phải lưu trữ cả tay xử lý lệnh và bộ đệ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.

Các 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 khi thời gian hết hạn hợp lệ.

kCommandFlag_InitiationTimeValid

Đặt khi thời gian khởi tạo hợp lệ.

kCommandFlag_IsOneWay

Thiết lập khi lệnh là 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.

Các 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ỏ trỏ đến đối tượng ngữ cảnh trao đổi được sử dụng bởi lệnh đến

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
)