nl::Weave::DeviceLayer::SoftwareUpdateManager

Resumo

Herança

Subclasses conhecidas diretas:
  nl::Weave::DeviceLayer::SoftwareUpdateManagerImpl
  nl::Weave::DeviceLayer::SoftwareUpdateManagerImpl
  nl::Weave::DeviceLayer::SoftwareUpdateManagerImpl

Tipos públicos

ActionType{
  kAction_Ignore,
  kAction_DownloadNow,
  kAction_DownloadLater,
  kAction_ApplicationManaged
}
enum
Quando uma atualização de software está disponível, o aplicativo pode escolher uma das ações a seguir como parte do callback do evento da API SoftwareUpdateAvailable.
EventCallback)(void *apAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutParam) typedef
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
}
enum
Eventos de API gerados pelo objeto SoftwareUpdateManager.
RetryPolicyCallback)(void *aAppState, RetryParam &aRetryParam, uint32_t &aOutIntervalMsec) typedef
void(*
State enum

Classes de amigos

Internal::GenericPlatformManagerImpl
friend class

Funções públicas

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

Funções estáticas públicas

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

Funções protegidas

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

Estruturas

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

Sindicatos

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

Tipos públicos

ActionType

 ActionType

Quando uma atualização de software está disponível, o aplicativo pode escolher uma das ações a seguir como parte do callback do evento da API SoftwareUpdateAvailable.

A ação padrão será definida como kAction_Now.

Propriedades
kAction_ApplicationManaged

Permite que o app gerencie o restante das fases de atualização do software, como download, validação da integridade da imagem e instalação.

A máquina de estado do gerenciador de atualização de software vai passar para o estado ApplicationManaged. As verificações programadas de atualização de software (se ativadas) vão ser suspensas até que o app cancele a chamada ou a API ImageInstallComplete.

kAction_DownloadLater

Pausar o download ao iniciar.

As verificações programadas de atualização de software (se ativadas) serão suspensas. A máquina de estado permanecerá no estado de download. Quando estiver pronto, o aplicativo poderá chamar a API de retomada de download para prosseguir com o download ou chamar "Abort" para cancelar.

kAction_DownloadNow

Inicie o download imediatamente.

Um callback de evento da API kEvent_FetchPartialImageInfo será gerado logo em seguida.

kAction_Ignore

Ignora o download por completo.

Uma chamada de retorno do evento da API kEvent_Finished é gerada com o erro WEAVE_DEVICE_ERROR_Software_UPDATE_CANCELLED se essa opção for selecionada e a lógica de repetição não for invocada.

EventCallback

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

EventType

 EventType

Eventos de API gerados pelo objeto SoftwareUpdateManager.

Propriedades
kEvent_ComputeImageIntegrity

Calcule um valor de verificação de integridade da imagem.

Solicita que o aplicativo calcule um valor de verificação de integridade sobre a imagem transferida por download. Gerado após a conclusão do download.

kEvent_DefaultCheck

Verifique o comportamento de manipulação de eventos padrão.

Usado para verificar o gerenciamento correto de eventos padrão no aplicativo.

Os aplicativos NÃO devem processar este evento.

kEvent_FetchPartialImageInfo

Busca informações de estado persistido de uma imagem parcialmente transferida por download.

Oferece uma oportunidade para o aplicativo divulgar informações de uma imagem parcial transferida anteriormente para que o download possa continuar do ponto em que foi interrompido. O URI da atualização de software disponível é fornecido como um parâmetro de entrada que o aplicativo pode usar para comparar se a imagem que está sendo transferida por download é igual à imagem parcial.

Espera-se que o aplicativo retorne o tamanho da imagem parcial no parâmetro de saída PartialImageLenInBytes. O aplicativo pode definir o valor de PartialImageLenInBytes como 0 para indicar que não há uma imagem parcial ou que o URI da imagem parcial não corresponde.

O aplicativo pode optar por ignorar esse evento passando-o para o manipulador de eventos padrão. Se isso for feito, o sistema sempre fará o download de toda a imagem de firmware disponível.

kEvent_Finished

O processo de atualização do software foi concluído.

Gerado quando uma verificação de atualização de software é concluída com ou sem erros. Os parâmetros incluídos nesse evento informam o motivo da falha se a tentativa for concluída devido a uma falha.

kEvent_PrepareImageStorage

Preparar o armazenamento de uma nova imagem.

Solicita que o aplicativo execute as etapas necessárias para preparar o armazenamento local para o download de uma nova imagem de firmware. O aplicativo pode usar isso, por exemplo, para apagar páginas em Flash.

O evento PrepareImageStorage é gerado apenas quando uma nova imagem de firmware está sendo transferida por download. Quando um download interrompido anteriormente é retomado, o PrepareImageStorage não é gerado.

O aplicativo precisa sinalizar a conclusão da operação de preparação chamando o método PrepareImageStorageComplete(). Isso pode ser feito no próprio callback do evento ou posteriormente. Se chamado de uma tarefa diferente da tarefa Weave, o autor da chamada precisa manter o bloqueio de pilha do Weave.

O aplicativo pode optar por ignorar o evento PrepareImageStorage passando-o para o manipulador de eventos padrão. Se isso for feito, o sistema vai prosseguir automaticamente para o estado de download da imagem.

Para oferecer suporte à retomada de um download interrompido, o aplicativo deve manter o URI da imagem (fornecido como um parâmetro de evento) e usá-lo ao manipular eventos FetchPartialImageInfo subsequentes.

kEvent_PrepareQuery

Preparar mensagem ImageQuery.

Gerado quando uma verificação de atualização de software é acionada. Oferece uma oportunidade para o aplicativo fornecer informações relacionadas ao produto para a mensagem SofwareUpdate:ImageQuery.

kEvent_PrepareQuery_Metadata

Preparar metadados para solicitação de ImageQuery.

Oferece uma oportunidade para o aplicativo anexar metadados adicionais à mensagem SofwareUpdate:ImageQuery, se necessário. Gerado quando a implementação está pronta para receber metadados do aplicativo.

kEvent_QueryPrepareFailed

Erro ao preparar uma solicitação ImageQuery.

Gerada quando a implementação encontra um erro ao preparar o envio de uma consulta de atualização de software.

kEvent_QuerySent

A solicitação ImageQuery foi enviada.

Evento informativo para sinalizar que uma mensagem SofwareUpdate:ImageQuery foi enviada.

kEvent_ReadyToInstall

A imagem está pronta para ser instalada.

Evento informativo para sinalizar que a imagem está pronta para ser instalada. Gerado quando uma imagem é aprovada na verificação de integridade.

kEvent_ResetPartialImageInfo

Redefinir o estado da imagem transferida por download parcialmente.

Solicita que o aplicativo esqueça o estado persistido associado a uma imagem transferida por download. Um evento ResetPartialImageInfo é gerado sempre que uma imagem transferida por download falha na verificação de integridade. Depois que um eventoResetPartialImageInfo for processado, os eventos FetchPartialImageInfo subsequentes indicarão que nenhuma imagem parcial está disponível.

Ao processar o evento ResetPartialImageInfo, o aplicativo NÃO precisa limpar os dados da imagem, somente as informações de estado associadas à imagem (ou seja, o URI e o comprimento parcial da imagem).

Se o aplicativo não for compatível com a retomada do download de imagens, ele poderá ignorar esse evento passando-o para o manipulador de eventos padrão.

kEvent_SoftwareUpdateAvailable

Atualização do software disponível.

Gerado quando uma SofwareUpdate:ImageQueryResponse é recebida em resposta a uma consulta contendo informações sobre a atualização disponível.

kEvent_StartImageDownload

O download da imagem foi iniciado.

Evento informativo para sinalizar o início de uma transação de download de imagem.

kEvent_StartInstallImage

Inicie a instalação da imagem.

Solicita que o aplicativo seja o processo de instalação de uma imagem de firmware baixada.

kEvent_StoreImageBlock

Armazene um bloco de dados de imagem.

Gerado sempre que um bloco de dados é recebido do servidor de download de arquivos. Os parâmetros incluídos nesse evento fornecem os dados e o tamanho deles.

Para dar suporte à retomada de um download interrompido, o aplicativo precisa manter uma contagem persistente do número total de bytes da imagem armazenados e usar esse valor ao processar eventos FetchPartialImageInfo subsequentes.

RetryPolicyCallback

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

Estado

 State

Classes de amigos

Interno::GenericPlatformManagerImpl

friend class Internal::GenericPlatformManagerImpl

Funções públicas

Cancelar

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
)

Funções estáticas públicas

DefaultEventHandler

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

Funções protegidas

SoftwareUpdateManager

 SoftwareUpdateManager()=default

SoftwareUpdateManager

 SoftwareUpdateManager(
  const SoftwareUpdateManager &
)=delete

SoftwareUpdateManager

 SoftwareUpdateManager(
  const SoftwareUpdateManager &&
)=delete

operador=

SoftwareUpdateManager & operator=(
  const SoftwareUpdateManager &
)=delete

~SoftwareUpdateManager

 ~SoftwareUpdateManager()=default