<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
<!-- This component and the accompanying materials are made available under the terms of the License
"Eclipse Public License v1.0" which accompanies this distribution,
and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
<!-- Initial Contributors:
Nokia Corporation - initial contribution.
Contributors:
-->
<!DOCTYPE concept
PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
<concept id="GUID-B71AC5E3-8AA8-55AD-916F-9E873926011B" xml:lang="en"><title>Feature
Manager Collection Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
<p>The Feature Manager collection is a set of classes used to manipulate feature
flags. </p>
<section id="GUID-E1E8BB89-C634-51D3-BBA1-A98BCCA3BD44"><title>Purpose</title> <p>A
feature is any piece of functionality which can be included in a phone at
ROM build time or excluded from it. An excluded feature is often written to
ROM at build time but excluded from the build by disabling it. </p> </section>
<section id="GUID-E914F975-B33E-55D0-9F7A-8CA65C321296"><title>Architecture</title> <p>The
feature management system uses the standard client server architecture. The
relationship between the components is : </p> <fig id="GUID-CA8AE056-6988-5611-BFE0-9999C0F02FF7">
<title> Architecture of the feature management system
</title>
<image href="GUID-CE79D1B9-2770-5494-A741-D98DE3EBFA05_d0e351566_href.png" placement="inline"/>
</fig><p> Feature Manager Client is not supplied with all versions of Symbian
Platform. Feature Discovery, which is always supplied, provides a subset of
the functionality of Feature Manager Client and offers superior performance
under certain circumstances. </p><p> The data which the Feature Manager manages
is stored as a collection of XML files in the feature database. These files
define a set of feature flags which can be accessed using the Feature Manager
API. The file <filepath>featureuid.xml</filepath> is the master record of
all features in the database. You do not manipulate the feature database directly.
</p><p> The feature manager database is also accessed by the tool <filepath>feat2hdr.pl</filepath> which
is used at ROM build time to convert the data relating to each feature into
.iby and .h files used by the source code of the components which the features
refer to. </p> </section>
<section id="GUID-A9D9B55D-8B3F-54E3-A272-0EF74757846F"><title>Description</title> <p> </p> <p>The
Feature Manager provides the functionality to </p> <ul>
<li id="GUID-946849BE-FD32-5C15-A14D-652962D7B907"><p>query features and report
on them, </p> </li>
<li id="GUID-97184F11-834D-510B-A9C5-685E87ADC256"><p>modify the status of
features, and </p> </li>
<li id="GUID-A7A9F8C0-21A1-5017-9DEA-334DA2345692"><p>set up notification
of changes to features. </p> </li>
</ul> </section>
<section id="GUID-B0C40DD9-CE3F-5855-AD6C-C56140CB27FF"><title>Components</title> <ul>
<li id="GUID-854A0F17-CC56-5673-9BA4-49E2D36AEEA2"><p>Feature Manager Client
provides the complete functionality required for feature management. </p> </li>
<li id="GUID-FEF9EA74-AC3B-507E-BFCA-599CEEBA3C4D"><p>Feature Manager Server
maintains the table containing the list of features available on the device. </p> </li>
<li id="GUID-EB3A9157-0659-5288-8FB8-18379EB2EE62"><p>Feature Discovery provides
the functionality to discover if a feature or feature set is available but
not to enable, disable or modify features. </p> </li>
</ul> <p>Feature flags were formerly managed using the Feature Registry component,
which has now been deprecated. The old Feature Registry API calls continue
to be supported, but the old implementation has been scrapped in favour of
wrapper functions which call Feature Manager. </p> </section>
<section><title>Using Feature Manager</title> <p>Feature flags, which are
held in the feature database, track changes to the status of features. It
is important to know that modifications through Feature Manager do not modify
the features themselves, though feature flags may be used by other components
which actually modify features. </p> <p>The Feature Manager provides the functionality
to: </p> <ul>
<li id="GUID-9D4F29E1-3E82-5527-8F49-C77346235CF2"><p>report the availability
of feature flags, </p> </li>
<li id="GUID-6A2B037D-46C6-595A-A9BF-3FBEBE4A063B"><p>enable and disable feature
flags, </p> </li>
<li id="GUID-262022F4-D777-5FD1-961E-6FDF22E77BC0"><p>modify the status of
feature flags and the data associated with them, and </p> </li>
<li id="GUID-893BC294-3503-5020-A507-0CBC455CB269"><p>set up notification
of changes to the status of feature flags. </p> </li>
</ul> <p>The <xref href="GUID-1A22E574-831B-5D00-98BD-0DFFA9CC09A0.dita">Feature
Manager Tutorial</xref> provides detailed instructions on how to perform these
tasks. </p> </section>
</conbody><related-links>
<link href="GUID-1568493D-0384-5FBD-816B-60A4817CEF0C.dita"><linktext>Feature Manager
Guide</linktext></link>
<link href="GUID-6F716E31-490E-5CA1-871A-D8D1661E3078.dita"><linktext>Feature Manager
Installation Tutorial</linktext></link>
<link href="GUID-D01C4682-619E-501E-8992-9F7FA35D7682.dita"><linktext>Feature Manager
Modification Tutorials</linktext></link>
<link href="GUID-1A22E574-831B-5D00-98BD-0DFFA9CC09A0.dita"><linktext>Feature Manager
Querying Tutorials</linktext></link>
<link href="GUID-910780A3-D6AB-5EE2-966A-5F228AC5804F.dita"><linktext>Feature Manager
Notification Tutorials</linktext></link>
<link href="GUID-F2489DE2-18E2-5C5B-A174-49B5B7A64A7C.dita"><linktext>Feature Manager
Reporting Tutorials</linktext></link>
</related-links></concept>