Symbian3/SDK/Source/GUID-B71AC5E3-8AA8-55AD-916F-9E873926011B.dita
author Dominic Pinkman <Dominic.Pinkman@Nokia.com>
Thu, 21 Jan 2010 18:18:20 +0000
changeset 0 89d6a7a84779
permissions -rw-r--r--
Initial contribution of Documentation_content according to Feature bug 1266 bug 1268 bug 1269 bug 1270 bug 1372 bug 1374 bug 1375 bug 1379 bug 1380 bug 1381 bug 1382 bug 1383 bug 1385

<?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_d0e325727_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>