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