Symbian3/PDK/Source/GUID-209F19E9-B61B-5758-B742-CA02B8BD5B02.dita
changeset 12 80ef3a206772
equal deleted inserted replaced
11:5072524fcc79 12:80ef3a206772
       
     1 <?xml version="1.0" encoding="utf-8"?>
       
     2 <!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
       
     3 <!-- This component and the accompanying materials are made available under the terms of the License 
       
     4 "Eclipse Public License v1.0" which accompanies this distribution, 
       
     5 and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
       
     6 <!-- Initial Contributors:
       
     7     Nokia Corporation - initial contribution.
       
     8 Contributors: 
       
     9 -->
       
    10 <!DOCTYPE concept
       
    11   PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
       
    12 <concept id="GUID-209F19E9-B61B-5758-B742-CA02B8BD5B02" xml:lang="en"><title>SCR Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
       
    13 <p>The Software Component Registry (SCR) is a unified registry of
       
    14 native and non-native software components. The SCR provides a common <xref href="GUID-1578590A-FC00-5C3B-8BF9-F6E43CA9D9A0.dita">AppArc</xref> support
       
    15 for handling native and non-native applications.</p>
       
    16 <section id="GUID-CCB48ED2-AAAB-446A-A4EA-C693D0A8E803"><title>Purpose</title> <p>The SCR lists the software installed on a device. The installed
       
    17 software can be native Symbian applications or non-native applications
       
    18 such as Java or Python. The registry contains information about applications,
       
    19 application related property and value pairs, and inter-dependencies
       
    20 between applications and components. </p> </section>
       
    21 <section id="GUID-A5FA08CE-50CA-4895-BA1E-1D07BA3E8FC9"><title>Key
       
    22 concepts</title> <p> <b>Component</b>: is a cohesive set of files
       
    23 and settings that provides a single unit for installation or uninstallation. </p><p> <b> Software type</b>: is a package format for delivering software,
       
    24 such as SIS, MIDP, JAR and Flash SWF.</p> <p> <b>Component and file
       
    25 properties</b>: are properties of a file or a component to be stored
       
    26 in the SCR. </p> <ul>
       
    27 <li id="GUID-AE34929D-8470-51EF-85AE-442EA5AD06EC"><p> <b>File properties</b>: include information such as the file size. </p> </li>
       
    28 <li id="GUID-28FEDAE5-4C11-57C7-8BD9-8807F2C96EA4"><p> <b>Component
       
    29 properties</b>: include information such as component name, vendor
       
    30 name and software type. </p> </li>
       
    31 </ul> <p> <b>Global component ID</b>: is the unique ID of a component.
       
    32 This UID is consistent across all devices. For example, the global
       
    33 component ID for native applications is the package UID. It is used
       
    34 to state dependencies and to check for installed components. </p> <p> <b>Locale</b>: is represented by a language code. </p> </section>
       
    35 <section id="GUID-8EB5A6AB-A217-42A8-BA47-A7C4127CE070"><title>Architectural
       
    36 relationships</title> <p>SCR is a component in the Installation Services
       
    37 collection. It collates all software book-keeping into a cohesive
       
    38 unit that is used by the SWI, SIF, SIF installers, applications and
       
    39 device managers and AppArc.</p><p>The following architectural diagram
       
    40 shows the high-level interaction between SCR and other components.</p><fig id="GUID-7DD31680-C31B-4547-89B2-D5E283E4A8E5">
       
    41 <title>SCR interaction diagram</title>
       
    42 <image href="GUID-6B9F014D-4445-4259-8ED2-1BA70B5800FE_d0e42963_href.jpg" placement="inline"/>
       
    43 </fig> <p>SCR is implemented as a server. Clients use SCR through
       
    44 the client-side resource class <xref href="GUID-E351FE30-23EC-37BD-BD89-E76411A03DB6.dita"><apiname>RSoftwareComponentRegistry</apiname></xref>.</p> <p> <b>Note</b>: Device creators must ensure that a default
       
    45 database exists in the ROM when the SCR server is started for the
       
    46 first time. The Symbian platform provides a PC-based tool, <codeph><xref href="GUID-C02ED3F5-EE81-4A84-B466-394F577ED34A.dita">SCRTool</xref></codeph>, to create a default database. </p> </section>
       
    47 <section id="GUID-684828A1-4572-452E-BC5E-ED9E15FFDF28"><title>APIs</title> <p>The SCR interface is designed to be used by software installation,
       
    48 application management and device management applications. The following
       
    49 are the key classes: </p><table id="GUID-04427367-A5DB-4559-8CE4-6796266BB4D7">
       
    50 <tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
       
    51 <tbody>
       
    52 <row>
       
    53 <entry>API</entry>
       
    54 <entry>Description</entry>
       
    55 </row>
       
    56 <row>
       
    57 <entry><p><xref href="GUID-E351FE30-23EC-37BD-BD89-E76411A03DB6.dita"><apiname>RSoftwareComponentRegistry</apiname></xref></p></entry>
       
    58 <entry><p>Provides interfaces to install, uninstall, and update software
       
    59 components. It is a client-side class used to perform the following:</p><ul>
       
    60 <li><p>Component management: Adds or removes components.</p></li>
       
    61 <li><p>Transaction management: Commits or rolls back a set of SQL
       
    62 operations together.</p></li>
       
    63 <li><p>Read-only queries: Retrieves component properties, file properties
       
    64 and application information.</p></li>
       
    65 </ul></entry>
       
    66 </row>
       
    67 <row>
       
    68 <entry><p><xref href="GUID-E3020365-2A15-3259-A8FF-78A2B22846AF.dita"><apiname>RSoftwareComponentRegistryView</apiname></xref></p></entry>
       
    69 <entry><p>Opens a sub-session to the SCR server and sends a request
       
    70 to create a component view using a supplied filter. </p><p>A filter
       
    71 can be set by specifying the component information such as ID, name,
       
    72 size, removable, locale, version, vendor, string property, integer
       
    73 property, software type, SCOMO state or installed drives. </p></entry>
       
    74 </row>
       
    75 <row>
       
    76 <entry><p><xref href="GUID-FD2ED994-27E4-35A3-BC69-A5AC7CE55B6A.dita"><apiname>RSoftwareComponentRegistryFilesList</apiname></xref></p></entry>
       
    77 <entry><p>Provides APIs to get the list of the files registered in
       
    78 the SCR for a specific component.</p></entry>
       
    79 </row>
       
    80 <row>
       
    81 <entry><p><xref href="GUID-B14FD164-2AC4-343A-838F-8E3207BA8789.dita"><apiname>RApplicationRegistryView</apiname></xref></p></entry>
       
    82 <entry><p> Opens a sub-session to the SCR server and sends a request
       
    83 to create a complete Application Registration view. This class can
       
    84 only be used by AppArc.</p></entry>
       
    85 </row>
       
    86 <row>
       
    87 <entry><p><xref href="GUID-5DD9E56F-CDBC-3BBC-B949-8FE10F29152B.dita"><apiname>RApplicationInfoView</apiname></xref></p></entry>
       
    88 <entry><p>Opens a sub-session to the SCR server and sends a request
       
    89 to create an AppInfo view by using filters on the server side. It
       
    90 returns information based on the filters supplied. The information
       
    91 includes the full pathname, caption, short caption information and
       
    92 UID of the application.</p></entry>
       
    93 </row>
       
    94 <row>
       
    95 <entry><p><xref href="GUID-E2FE3384-110B-3E81-8082-604371EE9D62.dita"><apiname>RRegistrationInfoForApplication</apiname></xref></p></entry>
       
    96 <entry><p>Opens a sub-session to the SCR server with a particular
       
    97 application UID and fetches the details such as Service UID for the
       
    98 application only.</p></entry>
       
    99 </row>
       
   100 <row>
       
   101 <entry><p><xref href="GUID-8C085940-AE69-3CE3-993A-675C2DB2D0CD.dita"><apiname>RApplicationRegistrationInfo</apiname></xref></p></entry>
       
   102 <entry><p>Opens a sub-session to the SCR server and is used to retrieve
       
   103 application information such as the application UID.</p></entry>
       
   104 </row>
       
   105 <row>
       
   106 <entry><p><xref href="GUID-E351FE30-23EC-37BD-BD89-E76411A03DB6.dita#GUID-E351FE30-23EC-37BD-BD89-E76411A03DB6/GUID-7FE0C521-2BFD-3B4A-A46E-B6C8E2ABB0B2"><apiname>RSoftwareComponentRegistry::AddComponentL()</apiname></xref></p></entry>
       
   107 <entry><p>Adds a new software component entry to the SCR database.</p></entry>
       
   108 </row>
       
   109 <row>
       
   110 <entry><p><xref href="GUID-E351FE30-23EC-37BD-BD89-E76411A03DB6.dita#GUID-E351FE30-23EC-37BD-BD89-E76411A03DB6/GUID-570B8BF2-F451-37BE-9F71-634D2AE6E78B"><apiname>RSoftwareComponentRegistry::SetComponentPropertyL()</apiname></xref></p></entry>
       
   111 <entry><p>Is an overloaded API to add an integer, string or blob property
       
   112 to the registry for a given software component and locale. If the
       
   113 property already exists, the value is updated.</p></entry>
       
   114 </row>
       
   115 <row>
       
   116 <entry><p><xref href="GUID-E351FE30-23EC-37BD-BD89-E76411A03DB6.dita#GUID-E351FE30-23EC-37BD-BD89-E76411A03DB6/GUID-44071C4B-B57A-326A-B912-5C4451FC49D7"><apiname>RSoftwareComponentRegistry::RegisterComponentFileL()</apiname></xref></p></entry>
       
   117 <entry><p>Registers a file to a given software component.</p></entry>
       
   118 </row>
       
   119 <row>
       
   120 <entry><p><xref href="GUID-E351FE30-23EC-37BD-BD89-E76411A03DB6.dita#GUID-E351FE30-23EC-37BD-BD89-E76411A03DB6/GUID-7E68DF02-C134-3F33-B01C-C82EADFFEFCB"><apiname>RSoftwareComponentRegistry::DeleteComponentPropertyL()</apiname></xref></p></entry>
       
   121 <entry><p>Deletes a specific file property entry for a given file
       
   122 and software component.</p></entry>
       
   123 </row>
       
   124 <row>
       
   125 <entry><p><xref href="GUID-E351FE30-23EC-37BD-BD89-E76411A03DB6.dita#GUID-E351FE30-23EC-37BD-BD89-E76411A03DB6/GUID-CF509A92-A9A5-34AF-914C-5F33323059EB"><apiname>RSoftwareComponentRegistry::AddApplicationEntryL()</apiname></xref></p></entry>
       
   126 <entry><p>Adds a new application entry to the SCR database.</p></entry>
       
   127 </row>
       
   128 <row>
       
   129 <entry><p><xref href="GUID-E351FE30-23EC-37BD-BD89-E76411A03DB6.dita#GUID-E351FE30-23EC-37BD-BD89-E76411A03DB6/GUID-58D084A5-2755-32E5-A689-A67E632AB6AC"><apiname>RSoftwareComponentRegistry::DeleteApplicationEntriesL()</apiname></xref></p></entry>
       
   130 <entry> <p>Deletes the information of all applications associated
       
   131 with an existing component entry from the SCR database.</p></entry>
       
   132 </row>
       
   133 <row>
       
   134 <entry/>
       
   135 <entry/>
       
   136 </row>
       
   137 </tbody>
       
   138 </tgroup>
       
   139 </table> </section>
       
   140 <section id="GUID-8389A300-3AC9-42C7-8533-5E1BABC8CC69"><title>Typical
       
   141 uses</title> <p>SCR APIs are typically used to manage software installation.</p><p>SWI parses the registration resource files and updates the SCR
       
   142 with the application registration information and package information. </p><p>Non-native installers update the package information directly
       
   143 to SCR.</p><p>AppArc queries SCR to retrieve the list of applications
       
   144 to create an application list.</p><p>SIF uses SCR to retrieve the
       
   145 package information.</p><p>Application managers use SCR to retrieve
       
   146 the application registration information.</p> </section>
       
   147 </conbody></concept>