Feature Registry Overview

This document provides an overview of the Feature Registry.

Purpose

The Feature Registry allows users to query whether optional Symbian platform features (identified by 32-bit unique identifiers), are supported on a device prior to using them, and to request notification of run-time feature changes.

Architectural relationships

The main input to the Feature Registry is a configuration file, which is created by the ROMBUILD tool. This file defines a set of feature flags, which can be accessed using the Feature Registry API.

The configuration file generated by the ROMBUILD tool can be used to produce emulators specific to a particular ROM image using the EMULATORBUILD tool. For more information, refer to the OS Customisation guide.

Description

The main purpose of the Feature Registry is to provide a public API for querying whether managed Symbian platform features are supported on a device.

Feature information is sourced from a configuration file, which lists the status of features on the device. This configuration file is created by the ROMBUILD tool.

A notification API is also provided for future enhancements in which the Feature Registry is able to be updated during run-time.

Features

A feature is a section of the Symbian platform API and its underlying implementation, which accomplishes one or more useful tasks. Not all features are supported on all Symbian platform devices. Some will be absent (unsupported) because they are designated as optional features (sometimes referred to as managed features) and device manufacturers have chosen not to include them on a device. Others will be unavailable because they were added as part of a later OS release or are UI-specific.

Feature Management

Feature Management is the overall process, which controls how parts of Symbian platform are designated as features, given unique identifiers and tracked for inclusion or exclusion during the ROM-build process. The Feature Registry is an Application Programming Interface (API) to the Feature Management process, permitting applications to find out what features are available on the device at run-time. It is used by developers to find out whether optional features are supported on the device, prior to using them.