nl:: Weave:: Profiles:: DataManagement_Current:: CommandSender
#include <src/lib/profiles/data-management/Current/CommandSender.h>
概要
注: このクラスは、コマンド送信のプロトコルの詳細をカプセル化し、アプリケーションの仕組みを簡素化しています。アプリケーションは、コマンドのペイロードと、コマンド ヘッダーの内容とコマンドの動作を変更するオプションの引数セットを含む PacketBuffer を提供します。コマンド処理に関するこのラッパーの有用性は実際には制限されています。主な理由は、セキュリティ検証とデータのシリアル化 / シリアル化解除に関連する複雑さと柔軟性にあります。
コマンド検証の詳細は未定
また、このクラスは、関連する TraitDataSink 内のデータがコマンドの副作用(コマンド レスポンスで提供されたバージョンに基づいて)に追いついているかをアプリケーションが推測するのに役立ちます。そのオブジェクトのストレージを管理する役割を担います。
Weave バインディング
このクラスのオブジェクトは Weave バインディングで初期化できます。これはコマンドの送信に使用するデフォルトの Binding として機能します。ユーザーは SendCommand() の呼び出しごとに Binding を指定することもできます。これはデフォルトの Binding をオーバーライドします。デフォルトの Binding を指定する必要はありませんが、CommandSender に提供されるバインディングは初期化済みである必要があります。
EventCallback
コマンドの送信後に発生するイベントについて更新したい場合は、このタイプの関数を定義する必要があります(下記の「API イベント」を参照)。コマンド送信後に何があってもユーザーが関心を持っていない場合は NULL にできます。
API イベント
Command を送信すると、イベントは次のようになります。
CommunicationError
Command の作成または送信中、またはレスポンスの待機中にエラーが発生しました。レスポンスの待機中に発生する可能性のあるエラーには、重要なエラーや接続の予期せぬ終了などがあります。エラーの理由は、EventCallback ハンドラの InEventParam 引数に含まれます。
InProgressReceived
受信者は、コマンドは受信されたがまだ完了していないことを示す「処理中」のメッセージを送信できます。完了すると、受信者は Response または StatusReport を送信します。「処理中」のメールを送信する必要はありません。
StatusReportReceived
StatusReport の受信は、Command の処理中にエラーが発生したことを意味します。StatusReport には InEventParam を通じてアクセスできます。
ResponseReceived
レスポンスを受け取ったことは、Command 受信者が Command を正常に処理したことを意味します。レスポンスには、ペイロードが含まれる場合と含まれない場合があります。パケット バッファを保持する必要がある場合は、ExchangeContext::AddRef() を呼び出して参照カウントを増分できます。
パブリック タイプ |
|
---|---|
EventCallback)(void *const aAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutEventParam)
|
typedefvoid(*
|
EventType
|
enum |
パブリック属性 |
|
---|---|
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:: |
パブリック タイプ
EventCallback
void(* EventCallback)(void *const aAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutEventParam)
EventType
EventType
パブリック属性
mAppState
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 )
SendCommand
WEAVE_ERROR SendCommand( nl::Weave::PacketBuffer *aPayload, nl::Weave::Binding *aBinding, ResourceIdentifier & aResourceId, uint32_t aProfileId, uint32_t aCommandType )
SendCommand
WEAVE_ERROR SendCommand( nl::Weave::PacketBuffer *aPayload, nl::Weave::Binding *aBinding, SendParams & aSendParams )