透過集合功能整理內容 你可以依據偏好儲存及分類內容。

NL::編織::簡介::數據管理_當前::命令

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

概括

注:該課程旨在隱藏命令處理某個細節。已經作出決定要隱藏的細節ExchangeContext和認證驗證,同時使PacketBuffers的處理到應用層。這個圍繞命令處理的包裝器的效用確實有限,主要是由於安全驗證和數據序列化/反序列化所涉及的複雜性/靈活性。

命令驗證的細節仍待定

要調整正在進行中的重發時間,狀態報告,並響應消息,在應用層會以某種方式與處理ExchangeContext對象。最佳實踐還是TBD,但是應用層有這三個選擇:

1)獲取通過Exchange語境GetExchangeContext和直接評估/調整。 2)預分配和配置綁定引導期間,任何命令到達前,並配置得當3)創建一個臨時綁定使用此功能BindingPool :: NewResponderBindingFromExchangeContext

在 (2) 和 (3) 中,應用層都可以通過 Binding::ConfigureExistingExchangeContext 強制執行安全/時間設置。該綁定從不用於生成自定義命令新的交流環境,所以它並沒有被存儲在該手柄內。

請求數據包緩衝區也不存儲在這個句柄中,因為沒有明顯的用途。如果應用層可以處理此命令並直接發送響應,則尤其如此。

應用層將從接收此命令句柄的同一個回調中接收數據包緩衝區。如果它決定以異步方式處理此命令,則必須同時存儲命令句柄和數據包緩衝區。

公共類型

CommandFlags {
kCommandFlag_MustBeVersionValid = 0x0001,
kCommandFlag_InitiationTimeValid = 0x0002,
kCommandFlag_ActionTimeValid = 0x0004,
kCommandFlag_ExpiryTimeValid = 0x0008,
kCommandFlag_IsOneWay = 0x0010
}
枚舉
命令標誌位。
CommandFlags類型定義
命令標誌位。

公共屬性

actionTimeMicroSecond
int64_t
commandType
uint64_t
expiryTimeMicroSecond
int64_t
initiationTimeMicroSecond
int64_t
mustBeVersion
uint64_t

公共職能

Close (void)
void
GetExchangeContext (void) const
檢索此傳入命令使用的交換上下文對象。
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)

公共類型

命令標誌

 CommandFlags

命令標誌位。

特性
kCommandFlag_ActionTimeValid

當動作時間有效時設置。

kCommandFlag_ExpiryTimeValid

當到期時間有效時設置。

kCommandFlag_InitiationTimeValid

當初始化時間有效時設置。

kCommandFlag_IsOneWay

當命令是單向時設置。

kCommandFlag_MustBeVersionValid

當版本字段有效時設置。

公共屬性

動作時間微秒

int64_t actionTimeMicroSecond

命令類型

uint64_t commandType

到期時間微秒

int64_t expiryTimeMicroSecond

啟動時間微秒

int64_t initiationTimeMicroSecond

必須版本

uint64_t mustBeVersion

公共職能

關閉

void Close(
  void
)

獲取交換上下文

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

檢索此傳入命令使用的交換上下文對象。

細節
退貨
指向此傳入命令使用的交換上下文對象的指針

動作時間有效

bool IsActionTimeValid(
  void
) const 

IsExpiryTimeValid

bool IsExpiryTimeValid(
  void
) const 

IsInitiationTimeValid

bool IsInitiationTimeValid(
  void
) const 

IsMustBeVersionValid

bool IsMustBeVersionValid(
  void
) const 

一種方式

bool IsOneWay(
  void
) const 

發送錯誤

WEAVE_ERROR SendError(
  uint32_t aProfileId,
  uint16_t aStatusCode,
  WEAVE_ERROR aWeaveError
)

發送進度

WEAVE_ERROR SendInProgress(
  void
)

發送響應

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

驗證身份驗證器

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