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

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

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

Резюме

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

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

Чтобы настроить время повторной передачи для сообщения In-Progress, Status Report и Response, прикладной уровень должен каким-то образом иметь дело с объектом ExchangeContext . Лучшая практика все еще не определена, но на уровне приложения есть три варианта:

1) Получите контекст обмена через 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 typedef
В командных битах флага.

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

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

 CommandFlags

В командных битах флага.

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

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

kCommandFlag_ExpiryTimeValid

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

kCommandFlag_InitiationTimeValid

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

kCommandFlag_IsOneWay

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

kCommandFlag_MustBeVersionValid

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

CommandFlags

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

В командных битах флага.

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

actionTimeMicroSecond

int64_t actionTimeMicroSecond

commandType

uint64_t commandType

expiryTimeMicroSecond

int64_t expiryTimeMicroSecond

initiationTimeMicroSecond

int64_t initiationTimeMicroSecond

mustBeVersion

uint64_t mustBeVersion

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

Закрывать

void Close(
  void
)

GetExchangeContext

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

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

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

IsActionTimeValid

bool IsActionTimeValid(
  void
) const 

IsExpiryTimeValid

bool IsExpiryTimeValid(
  void
) const 

IsInitiationTimeValid

bool IsInitiationTimeValid(
  void
) const 

IsMustBeVersionValid

bool IsMustBeVersionValid(
  void
) const 

IsOneWay

bool IsOneWay(
  void
) const 

SendError

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

SendInProgress

WEAVE_ERROR SendInProgress(
  void
)

SendResponse

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

ValidateAuthenticator

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