Symbian3/SDK/Source/GUID-CBC57511-7F28-596A-9763-5674EB41BCAC.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 xml:lang="en" id="GUID-CBC57511-7F28-596A-9763-5674EB41BCAC"><title>Central Repository Overview</title><shortdesc>The Central Repository is part of Symbian OS which stores data such as application settings, component settings, configuration parameters and data used for localisation and customisation. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><section><title>Purpose</title> <p>The central repository was introduced to avoid the use of multiple .ini files specific to each application. Typical uses are persisting application data such as default file names, locale settings and user preferences from one session to another: data of this kind can also be used by device creaters to customise a device. Examples include phone book data, bookmarks, event logging and default keyboard layout. </p> </section> <section><title>Required background</title> <p>The central repository is used in the implementation of many libraries in Symbian OS. Application developers using these libraries generally do not need to access the central repository API directly. Developers maintaining and extending such libraries need to know how to use the API to read and modify repository data and set up change notification. Developers creating new extensions to Symbian OS such as device drivers need to know when it is appropriate to use the central repository to persist settings. They will also need to understand the mechanism of key spaces and initialisation files used to implement the central repository and how to create repository files, as explained in <xref href="GUID-36539894-580E-5774-AA79-7F640E8C59E1.dita">Central Repository Initialisation Files Guide</xref>. Product integrators and device creators need to know where in ROM central repository data can reside, to know the installation mechanism and to understand the impact on data security. </p> </section> <section><title>Key concepts and terms</title> <dl><dlentry><dt>Repository</dt> <dd><p>A data structure holding data to be persisted for a component or application, equivalent to a file. Also called a keyspace. </p> </dd> </dlentry> <dlentry><dt>Setting</dt> <dd><p>An item of data in a repository, equivalent to a line in a file. Also called a key. </p> </dd> </dlentry> <dlentry><dt>Initialisation file</dt> <dd><p>The text file from which a repository is created. </p> </dd> </dlentry> <dlentry><dt>Keyspaces</dt> <dd><p>Another term for a repository. </p> </dd> </dlentry> <dlentry><dt> Access policies</dt> <dd><p>Read or write permissions on a setting or group of settings. </p> </dd> </dlentry> </dl> </section> <section><title>Architecture</title> <p>Many applications and modules come with a data structure called a repository or keyspace which is used to persist application data. The Central Repository is the component which stores and manages repositories. Repositories are created and initialised individually along with their associated application on installation, or as a group when a device is built by device creators. The purpose of the Central Repository API is to enable application developers and device creators to modify repository data and to provide notification of changes to a repository. </p> <p>Conceptually, the Central Repository is comparable to a folder, an individual repository to a file and a setting to a line in a file. In fact repositories are implemented as binary files held at various locations in memory and are accessed through C++ classes which encapsulate them with a single API. Repositories are created with the applications to which they refer at device build time or at installation by the Application Installer on runtime. The Central Repository API is only used to access repositories, not to create them. </p> </section> <section><title>APIs</title> <p>The Central Repository API provides the <xref href="GUID-DEA618DF-D462-3B3E-A1E1-F21295AAFE78.dita"><apiname>CRepository</apiname></xref> class to provide access to repositories. </p> <table id="GUID-2241998F-DE1E-5098-8639-93FFA58834B5"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><thead><row><entry>API</entry> <entry>Description</entry> </row> </thead> <tbody><row><entry><p> <xref href="GUID-DEA618DF-D462-3B3E-A1E1-F21295AAFE78.dita"><apiname>CRepository</apiname></xref>  </p> </entry> <entry><p>Provides the functionality to access the repository created with an application. </p> </entry> </row> <row><entry><p> <xref href="GUID-127F54F2-99E7-3FAB-9669-90B0B1985285.dita"><apiname>CCenRepNotifyHandler</apiname></xref>  </p> </entry> <entry><p>Creates notification of changes to a repository. </p> </entry> </row> <row><entry><p> <xref href="GUID-7BB13E80-C3B8-3E4F-B3ED-120258011558.dita"><apiname>MCenRepNotifyHandlerCallback</apiname></xref>  </p> </entry> <entry><p>A callback interface to be implemented to respond to change notification. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Typical uses</title> <p>The Central Repository is typically used by applications such as messaging services to retrieve logins, localisation data and information needed for interprocess communication. </p> </section> </conbody><related-links><link href="GUID-1C683226-C142-5C7B-BD20-060058352B08.dita"><linktext>Central Repository Guide</linktext> </link> <link href="GUID-E3BE62B2-9625-5F79-84A4-0248A3F36225.dita"><linktext>Central Repository Access Guide</linktext> </link> </related-links></concept>