nl:: Weave:: Profiles:: DataManagement_Current:: CommandSender
#include <src/lib/profiles/data-management/Current/CommandSender.h>
概要
注: このクラスは、コマンド送信のプロトコルの詳細をカプセル化して、アプリケーションに関連するメカニズムを簡素化しています。アプリケーションは、コマンドのペイロードを含む PacketBuffer と、コマンド ヘッダーの内容とコマンドの動作を変更するオプションの引数セットを提供します。 コマンド処理に関するこのラッパーの有用性は実際に制限されています。これは主に、セキュリティ検証およびデータのシリアル化 / シリアル化解除に伴う複雑さと柔軟性によるものです。
コマンド検証の詳細は未定
このクラスは、関連する TraitDataSink 内のデータが(コマンド レスポンスで提供されるバージョンに基づいて)コマンドの副作用に適合しているかどうかをアプリケーションが推測するのにも役立ちます。オブジェクトのストレージの管理はアプリケーションの役割です。
Weave バインディング
このクラスのオブジェクトは、コマンド送信に使用するデフォルトの Binding として機能する 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
レスポンスを受け取ったということは、コマンドの受信者がコマンドを正常に処理したことを意味します。レスポンスにペイロードが含まれている場合と、含まれていない場合があります。アプリケーションでパケット バッファを保持する場合は、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 )