--- a/Symbian3/PDK/Source/GUID-33241691-7362-5FA1-A3B0-C3FA550E5E09.dita Tue Mar 30 11:42:04 2010 +0100
+++ b/Symbian3/PDK/Source/GUID-33241691-7362-5FA1-A3B0-C3FA550E5E09.dita Tue Mar 30 11:56:28 2010 +0100
@@ -1,13 +1,131 @@
-<?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-33241691-7362-5FA1-A3B0-C3FA550E5E09"><title>Store Overview</title><shortdesc>Provides structured data storage, using networks of streams. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><section><title>Purpose</title> <p>It is often necessary to persist a data structure such as an object by writing it to memory as a sequence of bytes called a stream. A complex object is persisted as multiple streams collectively known as a store. The Store component provides access to stores in Symbian OS. </p> </section> <section><title>Required background</title> <p>The Store component requires no specific background apart from C++ and Symbian OS. </p> </section> <section><title>Key concepts and terms</title> <p>The API has the following key concepts. </p> <dl><dlentry><dt>stream store</dt> <dd><p>a store consisting of streams, implemented by <xref href="GUID-30726D8E-E18D-3A3A-8EFB-CCA4F04C984D.dita"><apiname>CStreamStore</apiname></xref> </p> </dd> </dlentry> <dlentry><dt>persistent store</dt> <dd><p>a store which persists beyond the lifetime of the application which creates it, implemented by <xref href="GUID-21637329-EC49-39AD-8986-A22289D8CFE8.dita"><apiname>CPersistentStore</apiname></xref> </p> </dd> </dlentry> <dlentry><dt>embedded store</dt> <dd><p>a store which can itself be stored as a stream in another store, implemented by <xref href="GUID-F2EC3A9D-5F4B-3C98-98DC-44394C54B6DE.dita"><apiname>CEmbeddedStore</apiname></xref> </p> </dd> </dlentry> <dlentry><dt>memory store</dt> <dd><p>a store which resides in memory and exists only for the life of the store object, implemented by <xref href="GUID-5EC5199D-50F2-3BFA-BA45-4C5C017281DD.dita"><apiname>CBufStore</apiname></xref> </p> </dd> </dlentry> <dlentry><dt>dictionary store base and streams</dt> <dd><p>a sequence of streams accessed by a UID, implemented by <xref href="GUID-9899DA2C-DB1B-3D67-8719-B7E13658B4D7.dita"><apiname>CDictionaryStore</apiname></xref> </p> </dd> </dlentry> </dl> </section> <section><title>Architecture</title> <p>A stream is a representation of a data structure (such as an object) as a sequence of bytes. Structures as complex as most applications require multiple streams to store their state. This is termed a store. Stream types that work with stores are provided by the <xref href="GUID-66ACFC54-5671-5B72-9DBC-A76F7A112D63.dita">Store Streams</xref> API. </p> <p>The Stores API defines both base classes that define store abstractions without specifying the storage medium, and some concrete store types. </p> <p>The abstract classes are used as the base classes of separate APIs which use particular storage media. In particular the <xref href="GUID-21CF1D5F-44C5-5407-B3C9-8BC103C97079.dita">File Stores</xref> API defines further concrete stores which use file storage. Its base class, <xref href="GUID-9CBA8AB1-5BFC-3719-82AF-22A9BD93C306.dita"><apiname>CFileStore</apiname></xref> extends <xref href="GUID-21637329-EC49-39AD-8986-A22289D8CFE8.dita"><apiname>CPersistentStore</apiname></xref> and has its own subclasses such as <xref href="GUID-8B713854-7858-3E02-8A1C-B3E6C1C9EA85.dita"><apiname>CDirectFileStore</apiname></xref>. Concrete store types do not have to provide all the stream manipulation functionality defined by the base class interfaces: for example, direct file stores do not support individual deletion of streams within a store. </p> <p>Dictionary stores are accessed by a UID whereas stream stores are accessed by a stream ID. Persistent stores persist beyond the lifetime of the application that created them: they have a root stream from which the other streams in the store can be found. Embedded stores can be stored as streams in other stores: once written they cannot be modified. </p> <p>Stores are integrated with the application architecture as defined in the Uikon Core API. That expects file-based and embeddable applications to handle their data storage through stores. </p> <p>Stores are also the basis of the relational database provided by <xref href="GUID-13C95985-D16F-5A9E-A7F8-CAB637C4C6ED.dita">DBMS</xref>. </p> <fig id="GUID-39DD7576-D335-5CD2-92A6-E0B81EF2160A"><image href="GUID-09A58B23-68EA-58D7-BBC9-E7F4C4BF55D7_d0e571838_href.png" placement="inline"/></fig> </section> <section><title>APIs</title> <table id="GUID-6D27BADC-7CA7-5E39-8308-29CAA1858CAB"><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-30726D8E-E18D-3A3A-8EFB-CCA4F04C984D.dita"><apiname>CStreamStore</apiname></xref> </p> </entry> <entry><p>Provides the core abstract framework for stores allowing streams to be created and manipulated </p> </entry> </row> <row><entry><p> <xref href="GUID-21637329-EC49-39AD-8986-A22289D8CFE8.dita"><apiname>CPersistentStore</apiname></xref> </p> </entry> <entry><p>Persistent store abstract base class </p> </entry> </row> <row><entry><p> <xref href="GUID-F2EC3A9D-5F4B-3C98-98DC-44394C54B6DE.dita"><apiname>CEmbeddedStore</apiname></xref> </p> </entry> <entry><p>Encapsulates an embedded store </p> </entry> </row> <row><entry><p> <xref href="GUID-5EC5199D-50F2-3BFA-BA45-4C5C017281DD.dita"><apiname>CBufStore</apiname></xref> </p> </entry> <entry><p>In-memory non-persistent store </p> </entry> </row> <row><entry><p> <xref href="GUID-9899DA2C-DB1B-3D67-8719-B7E13658B4D7.dita"><apiname>CDictionaryStore</apiname></xref> </p> </entry> <entry><p>Dictionary store interface </p> </entry> </row> <row><entry><p> <xref href="GUID-4FA6EE6C-5B4E-39E0-B888-ABDE19985976.dita"><apiname>RStoreReadStream</apiname></xref> </p> </entry> <entry><p>Supports the opening and manipulation of an existing stream in a store </p> </entry> </row> <row><entry><p> <xref href="GUID-346D4908-15C7-3F15-945F-D561E774022D.dita"><apiname>RStoreWriteStream</apiname></xref> </p> </entry> <entry><p>Supports the writing of a stream to a store </p> </entry> </row> <row><entry><p> <xref href="GUID-418E7956-BE91-39A2-A26D-F1CA88B458AA.dita"><apiname>RFileBuf</apiname></xref> </p> </entry> <entry><p>A stream buffer hosted by a file </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Typical uses</title> <p>A typical use of stores is to write files to memory without using the file server. This is a good thing to do when an application uses embedded documents. </p> </section> </conbody><related-links><link href="GUID-F4875493-6501-56FC-90E5-5EEAA89A72C3.dita"><linktext>Persistent Storage Overview</linktext> </link> <link href="GUID-21CF1D5F-44C5-5407-B3C9-8BC103C97079.dita"><linktext>File Stores Overview</linktext> </link> <link href="GUID-66ACFC54-5671-5B72-9DBC-A76F7A112D63.dita"><linktext>Store Streams
- Overview</linktext> </link> <link href="GUID-744ACF2C-963B-5E2F-A6B3-220AB899FD23.dita"><linktext>Streaming Overview</linktext> </link> </related-links></concept>
\ No newline at end of file
+<?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-33241691-7362-5FA1-A3B0-C3FA550E5E09" xml:lang="en"><title>Store
+Overview</title><shortdesc>Provides structured data storage, using networks of streams. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-D38A0EFA-4D87-406B-AD87-CF79E61F2A08"><title>Purpose</title> <p>It
+is often necessary to persist a data structure such as an object by writing
+it to memory as a sequence of bytes called a stream. A complex object is persisted
+as multiple streams collectively known as a store. The Store component provides
+access to stores in Symbian platform. </p> </section>
+<section id="GUID-6E2C9766-E106-4A63-81CC-453B64C51DCC"><title>Required background</title> <p>The
+Store component requires no specific background apart from C++ and Symbian
+platform. </p> </section>
+<section id="GUID-597F91DD-2AA3-443C-BC98-C1E8A74BF505"><title>Key concepts
+and terms</title> <p>The API has the following key concepts. </p> <dl>
+<dlentry>
+<dt>stream store</dt>
+<dd><p>a store consisting of streams, implemented by <xref href="GUID-30726D8E-E18D-3A3A-8EFB-CCA4F04C984D.dita"><apiname>CStreamStore</apiname></xref> </p> </dd>
+</dlentry>
+<dlentry>
+<dt>persistent store</dt>
+<dd><p>a store which persists beyond the lifetime of the application which
+creates it, implemented by <xref href="GUID-21637329-EC49-39AD-8986-A22289D8CFE8.dita"><apiname>CPersistentStore</apiname></xref> </p> </dd>
+</dlentry>
+<dlentry>
+<dt>embedded store</dt>
+<dd><p>a store which can itself be stored as a stream in another store, implemented
+by <xref href="GUID-F2EC3A9D-5F4B-3C98-98DC-44394C54B6DE.dita"><apiname>CEmbeddedStore</apiname></xref> </p> </dd>
+</dlentry>
+<dlentry>
+<dt>memory store</dt>
+<dd><p>a store which resides in memory and exists only for the life of the
+store object, implemented by <xref href="GUID-5EC5199D-50F2-3BFA-BA45-4C5C017281DD.dita"><apiname>CBufStore</apiname></xref> </p> </dd>
+</dlentry>
+<dlentry>
+<dt>dictionary store base and streams</dt>
+<dd><p>a sequence of streams accessed by a UID, implemented by <xref href="GUID-9899DA2C-DB1B-3D67-8719-B7E13658B4D7.dita"><apiname>CDictionaryStore</apiname></xref> </p> </dd>
+</dlentry>
+</dl> </section>
+<section id="GUID-8B3C967B-ED78-4756-8162-80EB1261433C"><title>Architecture</title> <p>A
+stream is a representation of a data structure (such as an object) as a sequence
+of bytes. Structures as complex as most applications require multiple streams
+to store their state. This is termed a store. Stream types that work with
+stores are provided by the <xref href="GUID-66ACFC54-5671-5B72-9DBC-A76F7A112D63.dita">Store
+Streams</xref> API. </p> <p>The Stores API defines both base classes that
+define store abstractions without specifying the storage medium, and some
+concrete store types. </p> <p>The abstract classes are used as the base classes
+of separate APIs which use particular storage media. In particular the <xref href="GUID-21CF1D5F-44C5-5407-B3C9-8BC103C97079.dita">File Stores</xref> API defines
+further concrete stores which use file storage. Its base class, <xref href="GUID-9CBA8AB1-5BFC-3719-82AF-22A9BD93C306.dita"><apiname>CFileStore</apiname></xref> extends <xref href="GUID-21637329-EC49-39AD-8986-A22289D8CFE8.dita"><apiname>CPersistentStore</apiname></xref> and
+has its own subclasses such as <xref href="GUID-8B713854-7858-3E02-8A1C-B3E6C1C9EA85.dita"><apiname>CDirectFileStore</apiname></xref>. Concrete
+store types do not have to provide all the stream manipulation functionality
+defined by the base class interfaces: for example, direct file stores do not
+support individual deletion of streams within a store. </p> <p>Dictionary
+stores are accessed by a UID whereas stream stores are accessed by a stream
+ID. Persistent stores persist beyond the lifetime of the application that
+created them: they have a root stream from which the other streams in the
+store can be found. Embedded stores can be stored as streams in other stores:
+once written they cannot be modified. </p> <p>Stores are integrated with the
+application architecture as defined in the Uikon Core API. That expects file-based
+and embedded applications to handle their data storage through stores. </p> <p>Stores
+are also the basis of the relational database provided by <xref href="GUID-13C95985-D16F-5A9E-A7F8-CAB637C4C6ED.dita">DBMS</xref>. </p> <fig id="GUID-39DD7576-D335-5CD2-92A6-E0B81EF2160A">
+<title>Store inheritance diagram</title>
+<image href="GUID-09A58B23-68EA-58D7-BBC9-E7F4C4BF55D7_d0e593071_href.png" placement="inline"/>
+</fig> </section>
+<section id="GUID-CBBE7C0F-6999-4FCE-9793-C71B61130C75"><title>APIs</title> <table id="GUID-6D27BADC-7CA7-5E39-8308-29CAA1858CAB">
+<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-30726D8E-E18D-3A3A-8EFB-CCA4F04C984D.dita"><apiname>CStreamStore</apiname></xref> </p> </entry>
+<entry><p>Provides the core abstract framework for stores allowing streams
+to be created and manipulated </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-21637329-EC49-39AD-8986-A22289D8CFE8.dita"><apiname>CPersistentStore</apiname></xref> </p> </entry>
+<entry><p>Persistent store abstract base class </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-F2EC3A9D-5F4B-3C98-98DC-44394C54B6DE.dita"><apiname>CEmbeddedStore</apiname></xref> </p> </entry>
+<entry><p>Encapsulates an embedded store </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-5EC5199D-50F2-3BFA-BA45-4C5C017281DD.dita"><apiname>CBufStore</apiname></xref> </p> </entry>
+<entry><p>In-memory non-persistent store </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-9899DA2C-DB1B-3D67-8719-B7E13658B4D7.dita"><apiname>CDictionaryStore</apiname></xref> </p> </entry>
+<entry><p>Dictionary store interface </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-4FA6EE6C-5B4E-39E0-B888-ABDE19985976.dita"><apiname>RStoreReadStream</apiname></xref> </p> </entry>
+<entry><p>Supports the opening and manipulation of an existing stream in a
+store </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-346D4908-15C7-3F15-945F-D561E774022D.dita"><apiname>RStoreWriteStream</apiname></xref> </p> </entry>
+<entry><p>Supports the writing of a stream to a store </p> </entry>
+</row>
+<row>
+<entry><p> <xref href="GUID-418E7956-BE91-39A2-A26D-F1CA88B458AA.dita"><apiname>RFileBuf</apiname></xref> </p> </entry>
+<entry><p>A stream buffer hosted by a file </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> </section>
+<section id="GUID-4B0C731E-F9CB-4406-8DD4-C8C325B08257"><title>Typical uses</title> <p>A
+typical use of stores is to write files to memory without using the file server.
+This is a good thing to do when an application uses embedded documents. </p> </section>
+</conbody><related-links>
+<link href="GUID-F4875493-6501-56FC-90E5-5EEAA89A72C3.dita"><linktext>Persistent
+Storage Overview</linktext></link>
+<link href="GUID-21CF1D5F-44C5-5407-B3C9-8BC103C97079.dita"><linktext>File Stores
+Overview</linktext></link>
+<link href="GUID-66ACFC54-5671-5B72-9DBC-A76F7A112D63.dita"><linktext>Store Streams
+ Overview</linktext></link>
+<link href="GUID-744ACF2C-963B-5E2F-A6B3-220AB899FD23.dita"><linktext>Streaming
+Overview</linktext></link>
+</related-links></concept>
\ No newline at end of file