Google は、黒人コミュニティのための人種的公平の促進に取り組んでいます。詳細をご覧ください。

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) typedef
void(*
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::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

パブリック タイプ

イベント コールバック

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
)

SetSynchronizedTraitState

void SetSynchronizedTraitState(
  SynchronizedTraitState *aTraitState
)