Symbian3/SDK/Source/GUID-DCA2880E-7DF9-5E60-8F87-241711935389.dita
changeset 7 51a74ef9ed63
child 13 48780e181b38
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-DCA2880E-7DF9-5E60-8F87-241711935389.dita	Wed Mar 31 11:11:55 2010 +0100
@@ -0,0 +1,68 @@
+<?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-DCA2880E-7DF9-5E60-8F87-241711935389" xml:lang="en"><title>FeatMngrExample:
+dynamic feature management example</title><shortdesc>This example demonstrates the use of Feature Manager APIs for dynamic
+feature management. It also demonstrates how to receive notification about
+changes to a feature. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-716F1987-F1F1-4E20-8390-BBD9AE592C2A"><title>Download</title> <p>Click on the following link to download
+the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-3bc38b8f-c8bf-4af9-969b-a0bc4dd4dcad.zip" scope="external">FeatMngrExample.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-3bc38b8f-c8bf-4af9-969b-a0bc4dd4dcad.html" scope="peer">browse</xref> to view the example code.</p> </section>
+<section id="GUID-CA323EF2-3A8A-4363-AC6E-A21B3C2648D7"><title>Purpose</title> <p>The example shows how to use the <xref href="GUID-0CA63AEB-9A80-51C6-AE7F-E747D6B3B789.dita">Feature Manager</xref> API.
+UI vendors and device manufacturers can use this API to declare features (such
+as DRM agents, codecs, vibra) as available or not. The feature set can be
+adjusted dynamically as software services are installed and uninstalled or
+as platform capabilities are discovered dynamically. </p> <p>This example
+shows how Feature Manager APIs allow applications and system software to establish
+which features are present on or absent from a Symbian device. </p> </section>
+<section id="GUID-1C59222F-2F39-4599-8052-AE7C83854AC8"><title>Design and implementation</title> <p>The example consists
+of two processes: </p> <ul>
+<li id="GUID-0DA213CD-55C2-5ADD-A872-20D008EE5D46"><p> <filepath>featmngrexample.exe</filepath>:
+this is the main process which provides the list of available features. It
+also provides the option to add new features or delete/update a feature. </p> </li>
+<li id="GUID-B2A151CA-3807-5990-B431-CF4083E42107"><p> <filepath>featurechecker.exe</filepath>:
+this process receives notification about new features installed or uninstalled
+by the main process. </p> </li>
+</ul> <p><b>FeatMngrExample</b> </p> <p>This shows the use of the <xref href="GUID-F6AAAC24-4A62-383A-86C6-2E46335C3FD4.dita"><apiname>RFeatureControl</apiname></xref> API
+to manage features. </p> <p>It presents menu options to the user to list the
+available features, to add or delete a feature, update an existing feature,
+and to enable or disable a feature. It also starts another process, called
+featurechecker.exe which receives notifications of events happening in this
+process. The list of features includes some whose feature flags are non-modifiable.
+Any attempt to modify or delete those features will result in a system error
+-21 (<codeph>KErrAccessDenied</codeph>). When adding a new feature, it should
+be in the range as described in the console because the featurechecker process
+subscribes to this range of features for change notification. </p> <p><b>FeatureChecker</b> </p> <p>This
+process is started by <filepath>featmngrexample.exe</filepath>. It implements
+the <xref href="GUID-623C4183-00F0-36B0-AE1F-5C5EDCAF1B3D.dita"><apiname>MFeatureObserver</apiname></xref> class to handle notification of feature
+changes. <codeph>FeatureChecker</codeph> also demonstrates the use of the <xref href="GUID-CA12C6F7-E997-33B8-9463-B326BC1832C5.dita"><apiname>CFeatureNotifier</apiname></xref> class.
+It implements <codeph>HandleNotifyChange()</codeph> to handle the changes
+made by FeatMngrExample. The type of change is displayed to the user as an
+infoprint message (<xref href="GUID-C197C9A7-EA05-3F24-9854-542E984C612D.dita#GUID-C197C9A7-EA05-3F24-9854-542E984C612D/GUID-EEF84AA0-A277-390D-BFAB-CF50C94DF18D"><apiname>User::InfoPrint()</apiname></xref>). <codeph>HandleNotifyChange()</codeph> is
+called to handle changes for those features which are subscribed to for notification
+(in the <codeph>NotifyFeatureL</codeph> () method). </p> </section>
+<section id="GUID-7A7C9409-D701-4C64-B0B2-AE0F89C396FA"><title>Building and configuring</title> <p>To build the example: </p> <ul>
+<li id="GUID-A8030260-4FEF-55E1-A50C-65BEE3F08E21"><p>The example builds two
+executables called <filepath>featmngrexample.exe</filepath> and <filepath>featurechecker.exe</filepath> in
+the standard locations. The second executable is run by the first. </p> </li>
+<li id="GUID-DD5D4965-A174-553C-BD13-22A6DFE9E52F"><p>You can build the example
+from your IDE or the command line. </p> <p>If you use an IDE, import the <filepath>bld.inf</filepath> file
+of the example into your IDE, and use the build command of the IDE. </p> <p>If
+you use the command line, open a command prompt, and set the current directory
+to the source code directory of the example. You can then build the example
+with the SBSv1 build tools with the following commands: </p> <p><userinput>bldmake
+bldfiles</userinput> </p> <p><userinput>abld build</userinput> </p> <p><xref href="GUID-793A5EF9-CC16-5EEB-9011-6431EA76EB15.dita">How to use bldmake</xref> and <xref href="GUID-B6B54E07-3B34-5D5C-8815-93383FA8FB4B.dita">How to use abld</xref> describe
+how to use the SBSv1 build tools. </p> </li>
+</ul> </section>
+<section id="GUID-8B18A01A-44D4-400E-9CEC-3E75F55D7F7F"><title>Running the example</title> <p>When running the example, the
+user is presented with various menu options that are self-explanatory. Press
+any other key to exit. </p> </section>
+<section id="GUID-433F7103-5372-5971-85A6-0FBF88ECE5C1"><title>See also:</title><p><xref href="GUID-7495B1C8-38B5-5A09-8231-25B3BBC09F51.dita">Feature Management</xref></p></section>
+</conbody></concept>
\ No newline at end of file