nl:: Weave:: DeviceLayer:: SoftwareUpdateManager
摘要
继承
已知直接子类:nl::Weave::DeviceLayer::SoftwareUpdateManagerImpl
nl::Weave::DeviceLayer::SoftwareUpdateManagerImpl
nl::Weave::DeviceLayer::SoftwareUpdateManagerImpl
公共类型 |
|
---|---|
ActionType{
|
枚举 当有软件更新可用时,应用可以选择以下操作之一作为 SoftwareUpdateAvailable API 事件回调的一部分。 |
EventCallback)(void *apAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutParam)
|
typedefvoid(*
|
EventType{
|
枚举 由 SoftwareUpdateManager 对象生成的 API 事件。 |
RetryPolicyCallback)(void *aAppState, RetryParam &aRetryParam, uint32_t &aOutIntervalMsec)
|
typedefvoid(*
|
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:: |
联合体 |
|
---|---|
nl:: |
|
nl:: |
公共类型
ActionType
ActionType
当有软件更新可用时,应用可以选择以下操作之一作为 SoftwareUpdateAvailable API 事件回调的一部分。
默认操作将设置为 kAction_Now。
属性 | |
---|---|
kAction_ApplicationManaged
|
允许应用管理软件更新的其余阶段,例如下载、映像完整性验证和安装。 软件更新管理器状态机将进入 ApplicationManaged 状态。在应用调用 Abort 或 ImageInstallComplete API 之前,系统会暂停定期进行的软件更新检查(如果已启用)。 |
kAction_DownloadLater
|
开始播放时暂停下载。 系统会暂停定期进行的软件更新检查(如果已启用)。状态机将保持下载状态。准备就绪后,应用可以调用简历下载 API 以继续下载,或调用 Abort 以取消下载。 |
kAction_DownloadNow
|
立即开始下载。 之后将立即生成 kEvent_FetchPartialImageInfo API 事件回调。 |
kAction_Ignore
|
完全忽略下载。 如果选择此选项,将生成包含错误 WEAVE_DEVICE_ERROR_SOFTWARE_UPDATE_CANCELLED 的 kEvent_Finished API 事件回调,并且不会调用重试逻辑。 |
EventCallback
void(* EventCallback)(void *apAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutParam)
EventType
EventType
由 SoftwareUpdateManager
对象生成的 API 事件。
属性 | |
---|---|
kEvent_ComputeImageIntegrity
|
计算映像完整性校验值。 请求应用针对下载的图片计算完整性校验值。下载完成后生成。 |
kEvent_DefaultCheck
|
检查默认的事件处理行为。 用于验证应用中默认事件处理是否正确。 应用不得处理此事件。 |
kEvent_FetchPartialImageInfo
|
提取已部分下载的图片的持久状态信息。 让应用有机会披露之前下载的部分图片的信息,以便从上次停止的位置继续下载。可用软件更新的 URI 以输入参数的形式提供,应用可以使用该参数来比较下载的图片与部分图片是否相同。 应用应在 PartialImageLenInBytes 输出参数中返回部分图像的长度。应用可以将 PartialImageLenInBytes 的值设置为 0,以表明不存在部分图像,或部分图像的 URI 不匹配。 应用可以选择忽略此事件,只需将其传递给默认事件处理脚本即可。如果这样做,系统将始终下载整个可用固件映像。 |
kEvent_Finished
|
软件更新流程已完成。 在软件更新检查完成(无论是否出现错误)时生成。如果尝试因失败而完成,则此事件中包含的参数会提供失败原因。 |
kEvent_PrepareImageStorage
|
准备存储新映像。 请求应用执行任何必要的步骤来准备本地存储空间以下载新固件映像。例如,应用可以使用此机制来清除 Flash 页面。 只有在下载新固件映像时,系统才会生成 PrepareImageStorage 事件。当之前中断的下载恢复时,不会生成 PrepareImageStorage。 应用必须通过调用 应用可以选择忽略 PrepareImageStorage 事件,方法是将其传递给默认事件处理脚本。完成此操作后,系统会自动进入图片下载状态。 为了支持恢复中断的下载,应用应保留图片 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 事件时使用此值。 |
RetryPolicyCallback
void(* RetryPolicyCallback)(void *aAppState, RetryParam &aRetryParam, uint32_t &aOutIntervalMsec)
状态
State
朋友课程
内部::GenericPlatformManagerImpl
friend class Internal::GenericPlatformManagerImpl
公共函数
取消
WEAVE_ERROR Abort( void )
CheckNow
WEAVE_ERROR CheckNow( void )
GetState
State GetState( void )
ImageInstallComplete
WEAVE_ERROR ImageInstallComplete( WEAVE_ERROR aError )
IsInProgress
bool IsInProgress( void )
PrepareImageStorageComplete
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 )
SetRetryPolicyCallback
void SetRetryPolicyCallback( const RetryPolicyCallback aRetryPolicyCallback )
公共静态函数
DefaultEventHandler
void DefaultEventHandler( void *apAppState, EventType aEvent, const InEventParam & aInParam, OutEventParam & aOutParam )
受保护的函数
SoftwareUpdateManager
SoftwareUpdateManager()=default
SoftwareUpdateManager
SoftwareUpdateManager( const SoftwareUpdateManager & )=delete
SoftwareUpdateManager
SoftwareUpdateManager( const SoftwareUpdateManager && )=delete
运算符=
SoftwareUpdateManager & operator=( const SoftwareUpdateManager & )=delete
~软件更新管理器
~SoftwareUpdateManager()=default