нл:: Переплетение:: Уровень устройства:: Менеджер обновлений программного обеспечения

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

Наследование

Прямые известные подклассы:
  nl::Weave::DeviceLayer::SoftwareUpdateManagerImpl
  nl::Weave::DeviceLayer::SoftwareUpdateManagerImpl
  nl::Weave::DeviceLayer::SoftwareUpdateManagerImpl

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

ActionType {
kAction_Ignore ,
kAction_DownloadNow ,
kAction_DownloadLater ,
kAction_ApplicationManaged
}
перечисление
Если доступно обновление программного обеспечения, приложение может выбрать одно из следующих действий в рамках обратного вызова события API SoftwareUpdateAvailable.
EventCallback )(void *apAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutParam) определение типа
void(*
EventType {
kEvent_PrepareQuery ,
kEvent_PrepareQuery_Metadata ,
kEvent_QueryPrepareFailed ,
kEvent_QuerySent ,
kEvent_SoftwareUpdateAvailable ,
kEvent_FetchPartialImageInfo ,
kEvent_PrepareImageStorage ,
kEvent_StartImageDownload ,
kEvent_StoreImageBlock ,
kEvent_ComputeImageIntegrity ,
kEvent_ResetPartialImageInfo ,
kEvent_ReadyToInstall ,
kEvent_StartInstallImage ,
kEvent_Finished ,
kEvent_DefaultCheck = 100
}
перечисление
События API, генерируемые объектом SoftwareUpdateManager .
RetryPolicyCallback )(void *aAppState, RetryParam &aRetryParam, uint32_t &aOutIntervalMsec) определение типа
void(*
State перечисление

Классы друзей

Internal::GenericPlatformManagerImpl
friend class

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

Abort (void)
CheckNow (void)
GetState (void)
State
ImageInstallComplete ( WEAVE_ERROR aError)
IsInProgress (void)
bool
PrepareImageStorageComplete ( WEAVE_ERROR aError)
SetEventCallback (void *const aAppState, const EventCallback aEventCallback)
SetQueryIntervalWindow (uint32_t aMinWaitTimeMs, uint32_t aMaxWaitTimeMs)
SetRetryPolicyCallback (const RetryPolicyCallback aRetryPolicyCallback)
void

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

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

Защищенные функции

SoftwareUpdateManager ()=default
SoftwareUpdateManager (const SoftwareUpdateManager &)=delete
SoftwareUpdateManager (const SoftwareUpdateManager &&)=delete
operator= (const SoftwareUpdateManager &)=delete
~SoftwareUpdateManager ()=default

Структуры

nl:: Weave:: DeviceLayer:: SoftwareUpdateManager:: RetryParam

Союзы

nl:: Weave:: DeviceLayer:: SoftwareUpdateManager:: InEventParam
nl:: Weave:: DeviceLayer:: SoftwareUpdateManager:: OutEventParam

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

Тип действия

 ActionType

Если доступно обновление программного обеспечения, приложение может выбрать одно из следующих действий в рамках обратного вызова события API SoftwareUpdateAvailable.

Действие по умолчанию будет установлено на kAction_Now.

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

Позволяет приложению управлять остальными этапами обновления программного обеспечения, такими как загрузка, проверка целостности образа и установка.

Конечный автомат диспетчера обновлений программного обеспечения перейдет в состояние ApplicationManaged. Запланированные проверки обновлений программного обеспечения (если они включены) будут приостановлены до тех пор, пока приложение не вызовет API Abort или ImageInstallComplete.

kAction_DownloadLater

Приостановить загрузку при запуске.

Запланированные проверки обновлений программного обеспечения (если они включены) будут приостановлены. Конечный автомат останется в состоянии загрузки. Когда все будет готово, приложение может вызвать API возобновления загрузки, чтобы продолжить загрузку, или вызвать Abort, чтобы отменить ее.

kAction_DownloadNow

Начните загрузку прямо сейчас.

Сразу после этого будет сгенерирован обратный вызов события API kEvent_FetchPartialImageInfo.

kAction_Ignore

Полностью игнорируйте загрузку.

Обратный вызов события API kEvent_Finished будет сгенерирован с ошибкой WEAVE_DEVICE_ERROR_SOFTWARE_UPDATE_CANCELLED, если выбран этот параметр, и логика повтора не будет вызвана.

Обратный вызов события

void(* EventCallback)(void *apAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutParam)

Тип события

 EventType

События API, генерируемые объектом SoftwareUpdateManager .

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

Вычислите значение проверки целостности изображения.

Запрашивает приложение вычислить значение проверки целостности загруженного изображения. Генерируется после завершения загрузки.

kEvent_DefaultCheck

Проверьте поведение обработки событий по умолчанию.

Используется для проверки правильности обработки событий по умолчанию в приложении.

Приложения НЕ должны обрабатывать это событие.

kEvent_FetchPartialImageInfo

Получить сохраненную информацию о состоянии частично загруженного изображения.

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

Ожидается, что приложение вернет длину частичного изображения в выходном параметре PartialImageLenInBytes. Приложение может установить значение PartialImageLenInBytes равным 0, чтобы указать, что части изображения не существует или что URI частичного изображения не соответствует.

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

kEvent_Finished

Процесс обновления программного обеспечения завершен.

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

kEvent_PrepareImageStorage

Подготовьтесь к хранению нового изображения.

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

Событие ПодготовкаImageStorage генерируется только в том случае, если загружается новый образ встроенного ПО. Когда возобновляется ранее прерванная загрузка, параметр AcceptImageStorage не создается.

Приложение должно сигнализировать о завершении операции подготовки, вызывая метод PrepareImageStorageComplete() . Это может быть сделано в рамках самого обратного вызова события или позже. При вызове из задачи, отличной от задачи Weave, вызывающая сторона должна удерживать блокировку стека Weave.

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

Чтобы поддерживать возобновление прерванной загрузки, приложение должно сохранить URI изображения (предоставленный как параметр события) и использовать его при обработке последующих событий FetchPartialImageInfo.

kEvent_PrepareQuery

Подготовьте сообщение ImageQuery.

Генерируется при запуске проверки обновлений программного обеспечения. Предоставляет приложению возможность предоставлять информацию, связанную с продуктом, в сообщение SofwareUpdate:ImageQuery.

kEvent_PrepareQuery_Metadata

Подготовьте метаданные для запроса ImageQuery.

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

kEvent_QueryPrepareFailed

Ошибка при подготовке запроса ImageQuery.

Генерируется, когда реализация обнаруживает ошибку при подготовке к отправке запроса на обновление программного обеспечения.

kEvent_QuerySent

Запрос ImageQuery отправлен.

Информационное событие, сигнализирующее об отправке сообщения SofwareUpdate:ImageQuery.

kEvent_ReadyToInstall

Образ готов к установке.

Информационное событие, сигнализирующее о том, что образ готов к установке. Создается после того, как изображение проходит проверку целостности.

kEvent_ResetPartialImageInfo

Сбросить состояние частично загруженного изображения.

Запрашивает приложение забыть постоянное состояние, связанное с загруженным изображением. Событие ResetPartialImageInfo генерируется всякий раз, когда загруженное изображение не проходит проверку целостности. После обработки события ResetPartialImageInfo последующие события FetchPartialImageInfo должны указывать на то, что часть изображения недоступна.

Обратите внимание, что при обработке события ResetPartialImageInfo приложению НЕ требуется очищать сами данные изображения, а только информацию о состоянии, связанную с изображением (т. е. URI и частичную длину изображения).

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

kEvent_SoftwareUpdateAvailable

Доступно обновление программного обеспечения.

Генерируется, когда SofwareUpdate:ImageQueryResponse получен в ответ на запрос, содержащий информацию о доступном обновлении.

kEvent_StartImageDownload

Загрузка изображения началась.

Информационное событие, сигнализирующее о начале транзакции загрузки изображения.

kEvent_StartInstallImage

Начните установку образа.

Запрашивает у приложения процесс установки загруженного образа прошивки.

kEvent_StoreImageBlock

Сохраните блок данных изображения.

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

Чтобы поддерживать возобновление прерванной загрузки, приложение должно поддерживать постоянный подсчет общего количества сохраненных байтов изображения и использовать это значение при обработке последующих событий FetchPartialImageInfo.

Повторить политику обратного вызова

void(* RetryPolicyCallback)(void *aAppState, RetryParam &aRetryParam, uint32_t &aOutIntervalMsec)

Состояние

 State

Классы друзей

Внутренний::ДженерикПлатформманажеримпл

friend class Internal::GenericPlatformManagerImpl

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

Прервать

WEAVE_ERROR Abort(
  void
)

Проверь сейчас

WEAVE_ERROR CheckNow(
  void
)

GetState

State GetState(
  void
)

Установка изображения завершена

WEAVE_ERROR ImageInstallComplete(
  WEAVE_ERROR aError
)

ИсВПрогресс

bool IsInProgress(
  void
)

Подготовка изображенияStorageComplete

WEAVE_ERROR PrepareImageStorageComplete(
  WEAVE_ERROR aError
)

SetEventCallback

WEAVE_ERROR SetEventCallback(
  void *const aAppState,
  const EventCallback aEventCallback
)

SetQueryIntervalWindow

WEAVE_ERROR SetQueryIntervalWindow(
  uint32_t aMinWaitTimeMs,
  uint32_t aMaxWaitTimeMs
)

SetRetryPolicyОбратный вызов

void SetRetryPolicyCallback(
  const RetryPolicyCallback aRetryPolicyCallback
)

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

Обработчик событий по умолчанию

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

Защищенные функции

Менеджер обновлений программного обеспечения

 SoftwareUpdateManager()=default

Менеджер обновлений программного обеспечения

 SoftwareUpdateManager(
  const SoftwareUpdateManager &
)=delete

Менеджер обновлений программного обеспечения

 SoftwareUpdateManager(
  const SoftwareUpdateManager &&
)=delete

оператор=

SoftwareUpdateManager & operator=(
  const SoftwareUpdateManager &
)=delete

~SoftwareUpdateManager

 ~SoftwareUpdateManager()=default