nl:: Weave:: Profiles:: DataManagement_Current:: CommandSender
#include <src/lib/profiles/data-management/Current/CommandSender.h>
まとめ
注: このクラスは、コマンドの送信に関するプロトコルの詳細をカプセル化するため、アプリケーションに関連するメカニズムを簡素化します。アプリケーションは、コマンドのペイロードを含む PacketBuffer、コマンド コマンドの内容、コマンドの動作を変更するオプションの引数セットを提供します。コマンドの処理に関連するこのラッパーの有用性は、セキュリティの検証とデータシリアル化/シリアル化解除に伴う複雑さ/柔軟性を主な要因として、事実上制限されます。
コマンド検証の詳細は未定
このクラスは、関連する TraitDataSink 内のデータがコマンドの副次的作用(コマンド応答で指定されたバージョン)の副作用に追いついているかどうかをアプリが推測するのにも役立ちます。そのオブジェクトのストレージを管理するのはアプリケーションの役割です。
Weave バインディング
このクラスのオブジェクトは Weave のバインディングで初期化できます。これは、コマンドの送信に使用するデフォルトのバインディングとして機能します。ユーザーは、SendCommand() の呼び出しごとにバインディングを指定することもできます。これは、デフォルトの Binding をオーバーライドします。デフォルトの Binding を提供する必要はありませんが、CommandSender に渡されたバインディングはすべて初期化されている必要があります。
イベント コールバック
ユーザーがコマンドの送信後に発生するイベントに関する最新情報を受け取るには、このタイプの関数を定義する必要があります(「API イベント」をご覧ください)。コマンドの送信後にユーザーが何が起きてもかまわない場合は、NULL になります。
API イベント
コマンドを送信した後、次のイベントが発生する可能性があります。
通信エラー
Command の作成中または送信中、またはレスポンスの待機中にエラーが発生しました。レスポンスを待機している間に発生する可能性のあるエラーの例としては、キーエラーや予期しない接続の切断があります。エラーの理由は、EventCallback ハンドラの InEventParam 引数に含まれます。
処理中の進行状況
受信者は、進行中の「コマンド」を受信しましたが、まだ完了していないことを示すメッセージを送信できます。完了後、受取人から Response または StatusReport が送信されます。「処理中」と言う必要はありません。メッセージは不要です。
ステータス レポートの受信
StatusReport を受け取った場合、コマンドの処理中にエラーが発生したことを意味します。StatusReport には InEventParam からアクセスできます。
ResponseReceived(レスポンスの受信)
レスポンスを受け取ったということは、Command 受信者が Command を正常に処理したことを意味します。レスポンスにペイロードが含まれている場合があります。パケット バッファを保持する場合は、ExchangeContext::AddRef() を呼び出して、参照カウントをインクリメントします。
パブリック タイプ |
|
---|---|
EventCallback)(void *const aAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutEventParam)
|
typedefvoid(*
|
EventType
|
列挙型 |
パブリック属性 |
|
---|---|
mAppState = NULL
|
void *
|
mSyncronizedTraitState = NULL
|
静的パブリック関数 |
|
---|---|
DefaultEventHandler(void *aAppState, EventType aEvent, const InEventParam & aInParam, OutEventParam & aOutParam)
|
void
|
パブリック関数 |
|
---|---|
Close(bool aAbortNow)
|
void
|
Init(nl::Weave::Binding *aBinding, const EventCallback aEventCallback, void *const aAppState)
|
|
SendCommand(nl::Weave::PacketBuffer *aPayload, nl::Weave::Binding *aBinding, ResourceIdentifier & aResourceId, uint32_t aProfileId, uint32_t aCommandType)
|
|
SendCommand(nl::Weave::PacketBuffer *aPayload, nl::Weave::Binding *aBinding, SendParams & aSendParams)
|
|
SetSynchronizedTraitState(SynchronizedTraitState *aTraitState)
|
void
|
構造体 |
|
---|---|
nl:: |
カスタム コマンドの受信者が送信者に返すデータ。 |
nl:: |
EventCallback 関数から CommandSender オブジェクトに返されるデータ。 |
nl:: |
SendCommand() に渡される引数をカプセル化します。 |
nl:: |
パブリック タイプ
イベント コールバック
void(* EventCallback)(void *const aAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutEventParam)
イベントタイプ
EventType
パブリック属性
モバイルアプリ
void * mAppState = NULL
mSyncronizedTraitState
SynchronizedTraitState * mSyncronizedTraitState = NULL
静的パブリック関数
DefaultEventHandler
void DefaultEventHandler( void *aAppState, EventType aEvent, const InEventParam & aInParam, OutEventParam & aOutParam )
パブリック関数
閉じる
void Close( bool aAbortNow )
init
WEAVE_ERROR Init( nl::Weave::Binding *aBinding, const EventCallback aEventCallback, void *const aAppState )
送信コマンド
WEAVE_ERROR SendCommand( nl::Weave::PacketBuffer *aPayload, nl::Weave::Binding *aBinding, ResourceIdentifier & aResourceId, uint32_t aProfileId, uint32_t aCommandType )
送信コマンド
WEAVE_ERROR SendCommand( nl::Weave::PacketBuffer *aPayload, nl::Weave::Binding *aBinding, SendParams & aSendParams )