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

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

概要

注: このクラスは、コマンド処理で特定の詳細情報を隠すように設計されています。また、ExchangeContext と認証システムの検証の詳細は非表示にし、PacketBuffers の処理はアプリケーション レイヤに任せることが決定されています。コマンド処理に関するこのラッパーの有用性は実際には制限されています。主な理由は、セキュリティ検証とデータのシリアル化 / シリアル化解除に関連する複雑さと柔軟性にあります。

コマンド検証の詳細は未定

処理中、ステータス レポート、レスポンス メッセージの再送信のタイミングを調整するには、アプリケーション レイヤで ExchangeContext オブジェクトをなんらかの方法で処理する必要があります。ベスト プラクティスはまだ未定ですが、アプリケーション レイヤには次の 3 つの選択肢があります。

1)GetExchangeContext で Exchange コンテキストを取得し、直接評価/調整します。2)コマンドが到着する前にバインディングを事前に割り当てて構成し、それを適切に構成する 3)BindingPool::NewResponderBindingFromExchangeContext 関数を使用して一時的なバインディングを作成する

(2)と(3)のどちらでも、アプリケーション レイヤは Binding::ConfigureExistingExchangeContext を使用して、セキュリティ/タイミングの設定を適用できます。Binding は、カスタム コマンドの新しい交換コンテキストの生成に使用されないため、このハンドル内に格納する必要はありません。

リクエスト パケットのバッファもこのハンドル内には格納されません。明らかに用途がわからないからです。これは、アプリケーション レイヤがこのコマンドを処理してレスポンスを直接送信できる場合に特に当てはまります。

アプリケーション レイヤは、このコマンド ハンドルを受け取るのと同じコールバックからパケット バッファを受信します。このコマンドを非同期で処理する場合は、コマンド ハンドルとパケット バッファの両方を保存する必要があります。

パブリック タイプ

CommandFlags{
  kCommandFlag_MustBeVersionValid = 0x0001,
  kCommandFlag_InitiationTimeValid = 0x0002,
  kCommandFlag_ActionTimeValid = 0x0004,
  kCommandFlag_ExpiryTimeValid = 0x0008,
  kCommandFlag_IsOneWay = 0x0010
}
enum
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
この受信コマンドで使用される交換コンテキスト オブジェクトを取得します。
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 

この受信コマンドで使用される交換コンテキスト オブジェクトを取得します。

詳細
戻り値
この受信コマンドで使用される交換コンテキスト オブジェクトへのポインタ。

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
)