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) typedef
void(*
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::Weave::Profiles::DataManagement_Current::CommandSender::InEventParam

カスタム コマンドの受信者によって送信者に返されたデータ。

nl::Weave::Profiles::DataManagement_Current::CommandSender::OutEventParam

EventCallback 関数から CommandSender オブジェクトに返されるデータ。

nl::Weave::Profiles::DataManagement_Current::CommandSender::SendParams

SendCommand() に渡す引数をカプセル化します。

nl::Weave::Profiles::DataManagement_Current::CommandSender::SynchronizedTraitState

公開タイプ

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
)

SetSynchronizedTraitState

void SetSynchronizedTraitState(
  SynchronizedTraitState *aTraitState
)