nl::Weave::Profiles::DataManagement_Current::Command

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

摘要

注意:這個類別是用來在指令處理中隱藏特定詳細資料。我們已做出決定,藉此隱藏 ExchangeContext 和驗證器驗證的詳細資料,同時將 PacketBuffers 處理作業留在應用程式層。 此包裝函式在指令處理的效用有限,主要是因為安全性驗證和資料序列化/去序列化作業的複雜性/彈性所致。

指令驗證的詳細資料仍待定

如要調整處理中、狀態報告和回應訊息的重新傳輸時間,應用程式層必須處理 ExchangeContext 物件。最佳做法仍待定,但應用程式層提供以下三個選項:

1) 透過 GetExchangeContext 取得 Exchange 結構定義,並直接評估/調整。2) 在啟動期間、任何指令送達前預先分配及設定繫結,並妥善進行設定 3) 使用這個函式 BindingPool::NewResponseerBindingFromExchangeContext 建立臨時 Binding

在 (2) 和 (3) 中,應用程式層可以透過 Binding::ConfigureExistingExchangeContext 強制執行安全性/時間設定。「繫結」絕對不會用來為自訂指令產生新的交換結構定義,因此無須儲存在這個處理常式中。

由於沒有明顯使用要求封包緩衝區,因此要求封包緩衝區也不會儲存在此控制代碼中。如果應用程式層可以處理這個指令並直接傳送回應,這一點尤其重要。

應用程式層會從接收此指令控制代碼的相同回呼中接收封包緩衝區。如果它決定以非同步方式處理這個指令,就必須同時儲存指令控點和封包緩衝區。

公開類型

CommandFlags{
  kCommandFlag_MustBeVersionValid = 0x0001,
  kCommandFlag_InitiationTimeValid = 0x0002,
  kCommandFlag_ActionTimeValid = 0x0004,
  kCommandFlag_ExpiryTimeValid = 0x0008,
  kCommandFlag_IsOneWay = 0x0010
}
列舉
Command 旗標位元。
CommandFlags typedef
Command 旗標位元。

公開屬性

actionTimeMicroSecond
int64_t
commandType
uint64_t
expiryTimeMicroSecond
int64_t
initiationTimeMicroSecond
int64_t
mustBeVersion
uint64_t

公用函式

Close(void)
void
GetExchangeContext(void) const
擷取這個傳入指令使用的 Exchange 結構定義物件。
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

 CommandFlags

Command 旗標位元。

屬性
kCommandFlag_ActionTimeValid

設定動作時間的有效時間。

kCommandFlag_ExpiryTimeValid

設定到期時間。

kCommandFlag_InitiationTimeValid

設定初始化時間的有效時間。

kCommandFlag_IsOneWay

在指令為單向時設定。

kCommandFlag_MustBeVersionValid

設定版本欄位有效的時間。

CommandFlags

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

Command 旗標位元。

公開屬性

actionTimeMicroSecond

int64_t actionTimeMicroSecond

commandType

uint64_t commandType

expiryTimeMicroSecond

int64_t expiryTimeMicroSecond

initiationTimeMicroSecond

int64_t initiationTimeMicroSecond

mustBeVersion

uint64_t mustBeVersion

公用函式

關閉

void Close(
  void
)

GetExchangeContext

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

擷取這個傳入指令使用的 Exchange 結構定義物件。

詳細說明
傳回
指向這個傳入指令使用的 Exchange 結構定義物件指標

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
)