Snapdragon® Telematics Application Framework (TelAF) Interface Specification
le_update_server.h File Reference
#include "legato.h"
#include "le_limit_server.h"
#include "le_update_common.h"

Go to the source code of this file.

Functions

le_msg_ServiceRef_t le_update_GetServiceRef (void)
 
le_msg_SessionRef_t le_update_GetClientSessionRef (void)
 
void le_update_AdvertiseService (void)
 
le_update_ProgressHandlerRef_t le_update_AddProgressHandler (le_update_ProgressHandlerFunc_t handlerPtr, void *contextPtr)
 
void le_update_RemoveProgressHandler (le_update_ProgressHandlerRef_t handlerRef)
 
le_result_t le_update_Start (int fd)
 
le_result_t le_update_Install (void)
 
void le_update_End (void)
 
le_update_ErrorCode_t le_update_GetErrorCode (void)
 
int32_t le_update_GetCurrentSysIndex (void)
 
le_result_t le_update_GetSystemHash (int32_t systemIndex, char *hashStr, size_t hashStrSize)
 
int32_t le_update_GetPreviousSystemIndex (int32_t systemIndex)
 

Function Documentation

◆ le_update_GetServiceRef()

le_msg_ServiceRef_t le_update_GetServiceRef ( void  )

Get the server service reference

◆ le_update_GetClientSessionRef()

le_msg_SessionRef_t le_update_GetClientSessionRef ( void  )

Get the client session reference for the current message

◆ le_update_AdvertiseService()

void le_update_AdvertiseService ( void  )

Initialize the server and advertise the service.

◆ le_update_AddProgressHandler()

le_update_ProgressHandlerRef_t le_update_AddProgressHandler ( le_update_ProgressHandlerFunc_t  handlerPtr,
void *  contextPtr 
)

Different states in the update state machine. The state machine is maintained to track the update task underway.

Example: for successful installation task, state transitions look like:

    --> UNPACKING --> DOWNLOAD_SUCCESS --> APPLYING --> SUCCESS.
            |                                 |
            +---------------------------------+-------> FAILED.

Error code used to provide diagnostic information after a failed update.

Note
Additional information may also be available in the target device's system log. The client callback function (handler) passed to le_update_Start() must look like this. Reference type used by Add/Remove functions for EVENT 'le_update_Progress' Add handler function for EVENT 'le_update_Progress'

Register for notification of the progress of a given update.

Add handler function for EVENT 'le_update_Progress'

Register for notification of the progress of a given update.

Parameters
[in]handlerPtrProgress handler
[in]contextPtr

◆ le_update_RemoveProgressHandler()

void le_update_RemoveProgressHandler ( le_update_ProgressHandlerRef_t  handlerRef)

Remove handler function for EVENT 'le_update_Progress'

Parameters
[in]handlerRef

◆ le_update_Start()

le_result_t le_update_Start ( int  fd)

Starts an update.

Progress is reported via the progress handler callback.

Returns
  • LE_OK if accepted.
  • LE_BUSY if another update is in progress.
  • LE_UNAVAILABLE if the system is still in "probation" (not marked "good" yet).
Parameters
[in]fdOpen file descriptor from which the update can be read.

◆ le_update_Install()

le_result_t le_update_Install ( void  )

Install the update

Returns
  • LE_OK if installation started.
  • LE_BUSY if package download is not finished yet.
  • LE_FAULT if there is an error. Check logs

◆ le_update_End()

void le_update_End ( void  )

Ends an update session. If the update isn't finished yet, cancels it.

◆ le_update_GetErrorCode()

le_update_ErrorCode_t le_update_GetErrorCode ( void  )

Function to get error code when update fails.

Returns
  • Error code of encountered error.
  • ERR_NONE if update is in any other state.

◆ le_update_GetCurrentSysIndex()

int32_t le_update_GetCurrentSysIndex ( void  )

Get the index of the currently running system.

Returns
The index of the running system.

◆ le_update_GetSystemHash()

le_result_t le_update_GetSystemHash ( int32_t  systemIndex,
char *  hashStr,
size_t  hashStrSize 
)

Gets the hash ID for a given system.

Returns
  • LE_OK if no problems are encountered.
  • LE_NOT_FOUND if the given index does not correspond to an available system.
  • LE_OVERFLOW if the supplied buffer is too small.
  • LE_FORMAT_ERROR if there are problems reading the hash for the system.
Parameters
[in]systemIndexThe system to read the hash for.
[out]hashStrBuffer to hold the system hash string.
[in]hashStrSize

◆ le_update_GetPreviousSystemIndex()

int32_t le_update_GetPreviousSystemIndex ( int32_t  systemIndex)

Get the index for the previous system in the chain, using the current system as a starting point.

Returns
The index to the system that's previous to the given system. -1 is returned if the previous system was not found.
Parameters
[in]systemIndexGet the system that's older than this system.