нл:: Переплетение:: Профили:: 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 { | перечисление Биты флага команды . |
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
Биты флага команды .
Командные флаги
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 )