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ế để ẩn một chi tiết nào đó trong việc xử lý lệnh. Quyết định đã được đưa ra để ẩn các chi tiết của ExchangeContext và xác thực trình xác thực, trong khi vẫn để việc xử lý PacketBuffers cho 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.
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 thông báo Đang tiến hành, Báo cáo trạng thái và cả 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 . 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) Lấy bối cảnh Exchange thông qua GetExchangeContext và trực tiếp đánh giá / điều chỉnh nó. 2) Phân bổ trước và định cấu hình một Binding trong khi khởi động, trước khi bất kỳ lệnh nào đến và định cấu hình nó đúng cách 3) Tạo một ràng buộc tạm thời bằng cách 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. Binding không bao giờ được 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 cần phải được lưu trữ trong tay cầm này.
Bộ đệm gói yêu cầu cũng không được lưu trữ 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 { | enum Các bit cờ Lệnh . |
CommandFlags | typedef Các bit cờ Lệnh . |
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 bit cờ Lệnh .
CommandFlags
enum nl::Weave::Profiles::DataManagement_Current::Command::CommandFlags CommandFlags
Các bit cờ Lệnh .
Thuộc tính công cộng
actionTimeMicroSecond
int64_t actionTimeMicroSecond
commandType
uint64_t commandType
deadlineTimeMicroSecond
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 )