Symbian3/PDK/Source/GUID-209F19E9-B61B-5758-B742-CA02B8BD5B02.dita
author Dominic Pinkman <dominic.pinkman@nokia.com>
Fri, 16 Jul 2010 17:23:46 +0100
changeset 12 80ef3a206772
permissions -rw-r--r--
Week 28 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 1897, Bug 344, Bug 2681, Bug 463, Bug 1522.

<?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-209F19E9-B61B-5758-B742-CA02B8BD5B02" xml:lang="en"><title>SCR Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
<p>The Software Component Registry (SCR) is a unified registry of
native and non-native software components. The SCR provides a common <xref href="GUID-1578590A-FC00-5C3B-8BF9-F6E43CA9D9A0.dita">AppArc</xref> support
for handling native and non-native applications.</p>
<section id="GUID-CCB48ED2-AAAB-446A-A4EA-C693D0A8E803"><title>Purpose</title> <p>The SCR lists the software installed on a device. The installed
software can be native Symbian applications or non-native applications
such as Java or Python. The registry contains information about applications,
application related property and value pairs, and inter-dependencies
between applications and components. </p> </section>
<section id="GUID-A5FA08CE-50CA-4895-BA1E-1D07BA3E8FC9"><title>Key
concepts</title> <p> <b>Component</b>: is a cohesive set of files
and settings that provides a single unit for installation or uninstallation. </p><p> <b> Software type</b>: is a package format for delivering software,
such as SIS, MIDP, JAR and Flash SWF.</p> <p> <b>Component and file
properties</b>: are properties of a file or a component to be stored
in the SCR. </p> <ul>
<li id="GUID-AE34929D-8470-51EF-85AE-442EA5AD06EC"><p> <b>File properties</b>: include information such as the file size. </p> </li>
<li id="GUID-28FEDAE5-4C11-57C7-8BD9-8807F2C96EA4"><p> <b>Component
properties</b>: include information such as component name, vendor
name and software type. </p> </li>
</ul> <p> <b>Global component ID</b>: is the unique ID of a component.
This UID is consistent across all devices. For example, the global
component ID for native applications is the package UID. It is used
to state dependencies and to check for installed components. </p> <p> <b>Locale</b>: is represented by a language code. </p> </section>
<section id="GUID-8EB5A6AB-A217-42A8-BA47-A7C4127CE070"><title>Architectural
relationships</title> <p>SCR is a component in the Installation Services
collection. It collates all software book-keeping into a cohesive
unit that is used by the SWI, SIF, SIF installers, applications and
device managers and AppArc.</p><p>The following architectural diagram
shows the high-level interaction between SCR and other components.</p><fig id="GUID-7DD31680-C31B-4547-89B2-D5E283E4A8E5">
<title>SCR interaction diagram</title>
<image href="GUID-6B9F014D-4445-4259-8ED2-1BA70B5800FE_d0e42963_href.jpg" placement="inline"/>
</fig> <p>SCR is implemented as a server. Clients use SCR through
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
database exists in the ROM when the SCR server is started for the
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>
<section id="GUID-684828A1-4572-452E-BC5E-ED9E15FFDF28"><title>APIs</title> <p>The SCR interface is designed to be used by software installation,
application management and device management applications. The following
are the key classes: </p><table id="GUID-04427367-A5DB-4559-8CE4-6796266BB4D7">
<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
<tbody>
<row>
<entry>API</entry>
<entry>Description</entry>
</row>
<row>
<entry><p><xref href="GUID-E351FE30-23EC-37BD-BD89-E76411A03DB6.dita"><apiname>RSoftwareComponentRegistry</apiname></xref></p></entry>
<entry><p>Provides interfaces to install, uninstall, and update software
components. It is a client-side class used to perform the following:</p><ul>
<li><p>Component management: Adds or removes components.</p></li>
<li><p>Transaction management: Commits or rolls back a set of SQL
operations together.</p></li>
<li><p>Read-only queries: Retrieves component properties, file properties
and application information.</p></li>
</ul></entry>
</row>
<row>
<entry><p><xref href="GUID-E3020365-2A15-3259-A8FF-78A2B22846AF.dita"><apiname>RSoftwareComponentRegistryView</apiname></xref></p></entry>
<entry><p>Opens a sub-session to the SCR server and sends a request
to create a component view using a supplied filter. </p><p>A filter
can be set by specifying the component information such as ID, name,
size, removable, locale, version, vendor, string property, integer
property, software type, SCOMO state or installed drives. </p></entry>
</row>
<row>
<entry><p><xref href="GUID-FD2ED994-27E4-35A3-BC69-A5AC7CE55B6A.dita"><apiname>RSoftwareComponentRegistryFilesList</apiname></xref></p></entry>
<entry><p>Provides APIs to get the list of the files registered in
the SCR for a specific component.</p></entry>
</row>
<row>
<entry><p><xref href="GUID-B14FD164-2AC4-343A-838F-8E3207BA8789.dita"><apiname>RApplicationRegistryView</apiname></xref></p></entry>
<entry><p> Opens a sub-session to the SCR server and sends a request
to create a complete Application Registration view. This class can
only be used by AppArc.</p></entry>
</row>
<row>
<entry><p><xref href="GUID-5DD9E56F-CDBC-3BBC-B949-8FE10F29152B.dita"><apiname>RApplicationInfoView</apiname></xref></p></entry>
<entry><p>Opens a sub-session to the SCR server and sends a request
to create an AppInfo view by using filters on the server side. It
returns information based on the filters supplied. The information
includes the full pathname, caption, short caption information and
UID of the application.</p></entry>
</row>
<row>
<entry><p><xref href="GUID-E2FE3384-110B-3E81-8082-604371EE9D62.dita"><apiname>RRegistrationInfoForApplication</apiname></xref></p></entry>
<entry><p>Opens a sub-session to the SCR server with a particular
application UID and fetches the details such as Service UID for the
application only.</p></entry>
</row>
<row>
<entry><p><xref href="GUID-8C085940-AE69-3CE3-993A-675C2DB2D0CD.dita"><apiname>RApplicationRegistrationInfo</apiname></xref></p></entry>
<entry><p>Opens a sub-session to the SCR server and is used to retrieve
application information such as the application UID.</p></entry>
</row>
<row>
<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>
<entry><p>Adds a new software component entry to the SCR database.</p></entry>
</row>
<row>
<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>
<entry><p>Is an overloaded API to add an integer, string or blob property
to the registry for a given software component and locale. If the
property already exists, the value is updated.</p></entry>
</row>
<row>
<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>
<entry><p>Registers a file to a given software component.</p></entry>
</row>
<row>
<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>
<entry><p>Deletes a specific file property entry for a given file
and software component.</p></entry>
</row>
<row>
<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>
<entry><p>Adds a new application entry to the SCR database.</p></entry>
</row>
<row>
<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>
<entry> <p>Deletes the information of all applications associated
with an existing component entry from the SCR database.</p></entry>
</row>
<row>
<entry/>
<entry/>
</row>
</tbody>
</tgroup>
</table> </section>
<section id="GUID-8389A300-3AC9-42C7-8533-5E1BABC8CC69"><title>Typical
uses</title> <p>SCR APIs are typically used to manage software installation.</p><p>SWI parses the registration resource files and updates the SCR
with the application registration information and package information. </p><p>Non-native installers update the package information directly
to SCR.</p><p>AppArc queries SCR to retrieve the list of applications
to create an application list.</p><p>SIF uses SCR to retrieve the
package information.</p><p>Application managers use SCR to retrieve
the application registration information.</p> </section>
</conbody></concept>