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