нл:: Переплетение:: Профили:: DataManagement_Current:: Команда

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

Краткое содержание

Примечание. Этот класс предназначен для скрытия определенных деталей обработки команд. Было принято решение скрыть детали ExchangeContext и проверки подлинности, оставив обработку PacketBuffers на уровне приложения. Полезность этой оболочки для обработки команд действительно ограничена, главным образом из-за сложности/гибкости проверки безопасности и сериализации/десериализации данных.

Детали проверки команд еще не определены.

Чтобы настроить время повторной передачи сообщений «Выполняется», «Отчет о состоянии», а также «Ответ», уровень приложения должен каким-то образом работать с объектом ExchangeContext . Лучшая практика еще не определена, но на прикладном уровне есть три варианта:

1) Получите контекст Exchange через GetExchangeContext и напрямую оцените/настройте его. 2) Предварительно выделите и настройте привязку во время загрузки, до поступления какой-либо команды, и настройте ее правильно. 3) Создайте временную привязку с помощью этой функции BindingPool::NewResponderBindingFromExchangeContext.

И в (2), и в (3) уровень приложения может обеспечить соблюдение настроек безопасности/времени с помощью Binding::ConfigureExistingExchangeContext. Привязка никогда не используется для создания новых контекстов обмена для пользовательских команд, поэтому ее не обязательно хранить в этом дескрипторе.

Буфер пакета запроса также не хранится в этом дескрипторе, поскольку его использование не очевидно. Это особенно верно, если уровень приложения может обрабатывать эту команду и напрямую отправлять ответ.

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

Публичные типы

CommandFlags {
kCommandFlag_MustBeVersionValid = 0x0001,
kCommandFlag_InitiationTimeValid = 0x0002,
kCommandFlag_ActionTimeValid = 0x0004,
kCommandFlag_ExpiryTimeValid = 0x0008,
kCommandFlag_IsOneWay = 0x0010
}
перечисление
Биты флага команды .
CommandFlags определение типа
Биты флага команды .

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

actionTimeMicroSecond
int64_t
commandType
uint64_t
expiryTimeMicroSecond
int64_t
initiationTimeMicroSecond
int64_t
mustBeVersion
uint64_t

Общественные функции

Close (void)
void
GetExchangeContext (void) const
Получите объект контекста обмена, используемый этой входящей командой.
IsActionTimeValid (void) const
bool
IsExpiryTimeValid (void) const
bool
IsInitiationTimeValid (void) const
bool
IsMustBeVersionValid (void) const
bool
IsOneWay (void) const
bool
SendError (uint32_t aProfileId, uint16_t aStatusCode, WEAVE_ERROR aWeaveError)
SendInProgress (void)
SendResponse (uint32_t traitInstanceVersion, nl::Weave::System::PacketBuffer *apPayload)
ValidateAuthenticator ( nl::Weave::System::PacketBuffer *aRequestBuffer)

Публичные типы

Командные флаги

 CommandFlags

Биты флага команды .

Характеристики
kCommandFlag_ActionTimeValid

Установите, когда время действия действительно.

kCommandFlag_ExpiryTimeValid

Установите, когда срок годности действителен.

kCommandFlag_InitiationTimeValid

Установите, когда время инициализации действительно.

kCommandFlag_IsOneWay

Установите, когда команда односторонняя.

kCommandFlag_MustBeVersionValid

Установите, когда поле версии действительно.

Командные флаги

enum nl::Weave::Profiles::DataManagement_Current::Command::CommandFlags CommandFlags

Биты флага команды .

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

действиеTimeMicroSecond

int64_t actionTimeMicroSecond

тип команды

uint64_t commandType

истечение временимикросекунды

int64_t expiryTimeMicroSecond

инициациятимикросекунда

int64_t initiationTimeMicroSecond

mustBeVersion

uint64_t mustBeVersion

Общественные функции

Закрывать

void Close(
  void
)

GetExchangeContext

nl::Weave::ExchangeContext * GetExchangeContext(
  void
) const 

Получите объект контекста обмена, используемый этой входящей командой.

Подробности
Возврат
Указатель на объект контекста обмена, используемый этой входящей командой.

Исактионтимевалид

bool IsActionTimeValid(
  void
) const 

IsExpiryTimeValid

bool IsExpiryTimeValid(
  void
) const 

Исинициатионтимевалид

bool IsInitiationTimeValid(
  void
) const 

IsMustBeVersionValid

bool IsMustBeVersionValid(
  void
) const 

IsOneWay

bool IsOneWay(
  void
) const 

ОтправитьОшибка

WEAVE_ERROR SendError(
  uint32_t aProfileId,
  uint16_t aStatusCode,
  WEAVE_ERROR aWeaveError
)

ОтправитьИнПрогресс

WEAVE_ERROR SendInProgress(
  void
)

ОтправитьОтвет

WEAVE_ERROR SendResponse(
  uint32_t traitInstanceVersion,
  nl::Weave::System::PacketBuffer *apPayload
)

Валидатааутентификатор

WEAVE_ERROR ValidateAuthenticator(
  nl::Weave::System::PacketBuffer *aRequestBuffer
)