System State Manager Overview

The System State Manager (SSM) component controls transitioning of the device to different system states, and reacts to changes made to the System-wide Properties.

Required background

You must have an understanding on Generic Start-up Architecture before using System State Manager.

Key concepts

Generic Start-up Architecture (GSA)

This architecture allows easy customization of the device’s (mobile) start-up to provide improved device performance. The main components within the Generic Start-up Architecture are Base Starter (EStart) and AMA Starter.

SSM

This is a component of SSMA that controls transitioning of the device (mobile) to different system states, and reacts to changes of the system-wide properties.

System state

This indicates the state of the device (mobile). It is controlled by a state machine that is SSM. These states are defined by system state policies within a SSM plug-in and system state changes are triggered by system-wide property changes or external requests.

System-wide Property

This allows components to be aware of the system-state. They are defined by system-wide property policies within a SSM plug-in that can be customised by licensees. Custom commands are plug-in dlls implementing the MSsmCustomCommand interface in SSM. Using custom command licensees can develop alternative devices for performing the functionality implemented in a command.

Custom Command

Custom commands are plug-in dlls implementing the MSsmCustomCommand interface in SSM. Using custom command licensees can develop alternative devices for performing the functionality implemented in a command.

API summary

API names Description

RSsmStateManager

A System State Management control class, which can be used to request for a change in the system state or the system-wide property.

RSsmStateAwareSession

A system-state aware component, which can be used to provide APIs for components that want to be system state aware.

RSsmSystemWideProperty

A system-wide property class, which can also be used to provide an API for components that want to be notified of changes to a particular system-wide property.

Typical uses

Creating a custom command

Custom commands are plug-in dlls implementing the MSsmCustomCommand interface in SSM. Using custom command licensees can develop alternative devices for performing the functionality implemented in a command.

For more information about creating and running a custom command, see Creating a Custom Command and Running a custom command.

Making components to be system state aware

A system state aware component is notified of the changes taking place within SSMA through, RSsmStateAwareSession. A user must make a component to be state aware because SSM must perform certain defined actions based on the state changes. For more information about making a component to be aware of its state, see Making a State Aware Component.

Monitoring a system-wide property

System-wide properties allow components to be aware about the state of the device. If there is any change in the system-wide property value, SSM sends the notification messages to the requested components. For more information about monitoring a system-wide property, see Monitoring a System-Wide Property.

Creating a Static CommandList

Static commandList (SCL) provides information about the commands that must be run at startup. For more information about creating a SCL, see Creating a Static commandList.

Running a conditional command in a CommandList

When loading a commandList, the resource file reader makes a decision based upon the value of the conditional_information. By default, its value is zero and the commands are unconditional. For more information about running a conditional command in a commandList, see Running a Command Conditionally in a commandList.