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