nl :: Dệt :: Hồ sơ :: DataManagement_Current :: Chỉ huy

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

Tóm lược

Lưu ý: Lớp này được thiết kế để che giấu một chi tiết nào đó trong việc xử lý lệnh. Quyết định đã được thực hiện để ẩn các chi tiết của ExchangeContext và xác nhận thực hiện chứng thực, trong khi để xử lý PacketBuffers đến lớp ứng dụng. 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.

Các chi tiết để xác thực lệnh vẫn là TBD

Để điều chỉnh thời gian truyền lại cho In-Progress, Báo cáo tình trạng, và cũng Response message, lớp ứng dụng sẽ phải bằng cách nào đó đối phó với ExchangeContext đối tượng. Cách tốt nhất vẫn là TBD, nhưng lớp ứng dụng có ba lựa chọn sau:

1) Có được bối cảnh Exchange thông qua GetExchangeContext và trực tiếp đánh giá / điều chỉnh nó. 2) Pre-phân bổ và cấu hình một Binding trong khi khởi động lên, trước khi bất kỳ lệnh đến, và cấu hình nó đúng 3) Tạo một tạm thời Ràng buộc sử dụng chức năng này BindingPool :: NewResponderBindingFromExchangeContext

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 :: ConfigureExistingExchangeContext. Các Ràng buộc là không bao giờ sử dụng để tạo bối cảnh trao đổi mới cho các lệnh tùy chỉnh, vì vậy nó không phải được lưu trữ trong xử lý này.

Bộ đệm gói yêu cầu cũng không được lưu trong xử lý này, vì không có 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à gửi phản hồi trực tiếp.

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

Các loại công khai

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

Thuộc tính công cộng

actionTimeMicroSecond
int64_t
commandType
uint64_t
expiryTimeMicroSecond
int64_t
initiationTimeMicroSecond
int64_t
mustBeVersion
uint64_t

Chức năng công cộng

Close (void)
void
GetExchangeContext (void) const
Truy xuất đối tượng ngữ cảnh trao đổi được sử dụng bởi lệnh đến này.
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)

Các loại công khai

CommandFlags

 CommandFlags

Các lệnh bit cờ.

Tính chất
kCommandFlag_ActionTimeValid

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

kCommandFlag_ExpiryTimeValid

Đặt khi thời gian hết hạn còn hiệu lực.

kCommandFlag_InitiationTimeValid

Đặt khi thời gian init hợp lệ.

kCommandFlag_IsOneWay

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

kCommandFlag_MustBeVersionValid

Đặt khi trường phiên bản hợp lệ.

CommandFlags

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

Các lệnh bit cờ.

Thuộc tính công cộng

actionTimeMicroSecond

int64_t actionTimeMicroSecond

commandType

uint64_t commandType

Hạn sử dụngTimeMicroSecond

int64_t expiryTimeMicroSecond

khởi tạoTimeMicroSecond

int64_t initiationTimeMicroSecond

mustBeVersion

uint64_t mustBeVersion

Chức năng công cộng

Đóng

void Close(
  void
)

GetExchangeContext

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

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

Chi tiết
Lợi nhuận
Một con trỏ đến đối tượng ngữ cảnh trao đổi được sử dụng bởi lệnh đến này

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
)

Gửi phản hồi

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

ValidateAuthenticator

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