Google is committed to advancing racial equity for Black communities. See how.
Эта страница переведена с помощью Cloud Translation API.
Switch to English

nl :: Плетение :: Профили: DataManagement_Current :: CommandSender

#include <src/lib/profiles/data-management/Current/CommandSender.h>

Резюме

Примечание: этот класс инкапсулирует детали протокола отправки команд, упрощая механизм, задействованный для приложений. Приложение предоставляет PacketBuffer, содержащий полезные данные команды, а также необязательный набор аргументов, которые изменяют содержимое заголовка команды, а также поведение команды. Полезность этой оболочки для обработки команд действительно ограничена, в основном из-за сложности / гибкости, связанной с проверкой безопасности и сериализацией / десериализацией данных.

Детали для проверки команд все еще подлежат уточнению.

Этот класс также помогает приложениям сделать вывод о том, что данные в связанном TraitDataSink уловили побочные эффекты команды (на основе версии, указанной в ответе на команду). Приложение отвечает за управление хранением этого объекта.

Переплет переплетения

Объект этого класса может быть intialized с Плетением Binding , который будет служить в качестве значения по умолчанию Binding использовать для отправки команд. Пользователь также может обеспечить связывание с каждым вызовом SendCommand (), который будет переопределить по умолчанию Binding . Нет необходимости , чтобы обеспечить по умолчанию Binding , однако любая привязка предоставляется CommandSender уже должны быть инициализированы.

EventCallback

Пользователь должен определить функцию этого типа, если он хочет получать информацию о событиях, которые происходят после отправки команды (см. «События API» ниже). Это может быть NULL, если пользователя не волнует, что происходит после отправки команды.

События API

Следующие события являются возможными результатами после отправки команды :

Ошибка связи

Произошла ошибка при формировании или отправке Команды , либо при ожидании ответа. Примерами ошибок, которые могут возникнуть при ожидании ответа, являются ключевые ошибки или неожиданное закрытие соединения. Причина ошибки будет указана в аргументе InEventParam обработчика EventCallback.

InProgressReceived

Получатель может отправить сообщение «в процессе», которое означает, что команда была получена, но еще не завершена. После завершения получатель отправит Response или StatusReport. Отправлять сообщение «в процессе» не требуется.

StatusReportReceived

Получение StatusReport означает, что при обработке команды произошла ошибка. Доступ к StatusReport можно получить через InEventParam .

ResponseReceived

Получение ответа означает , что команда получатель обработал команду успешно. Ответ может содержать полезную нагрузку, а может и не содержать. Если приложение желает сохранить буфер пакетов, оно может вызвать 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

Данные, возвращенные обратно в объект CommandSender из функции EventCallback.

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

Публичные атрибуты

mAppState

void * mAppState = NULL

mSyncronizedTraitState

SynchronizedTraitState * mSyncronizedTraitState = NULL

Публичные статические функции

DefaultEventHandler

void DefaultEventHandler(
  void *aAppState,
  EventType aEvent,
  const InEventParam & aInParam,
  OutEventParam & aOutParam
)

Публичные функции

Закрывать

void Close(
  bool aAbortNow
)

В этом

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
)