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{
|
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 )