Symbian3/SDK/Source/GUID-21CF1D5F-44C5-5407-B3C9-8BC103C97079.dita
author Dominic Pinkman <dominic.pinkman@nokia.com>
Tue, 20 Jul 2010 12:00:49 +0100
changeset 13 48780e181b38
parent 7 51a74ef9ed63
permissions -rw-r--r--
Week 28 contribution of SDK documentation content. See release notes for details. Fixes bugs Bug 1897 and 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-21CF1D5F-44C5-5407-B3C9-8BC103C97079" xml:lang="en"><title>File
Stores Overview</title><shortdesc>Provides a summary of APIs related to the File Store and their
uses.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
<section id="GUID-D44D9C54-8783-4D88-A7D8-F25FFE754802"><title>Purpose</title> <p>Provides
file-based structured data storage, using networks of streams.</p> </section>
<section id="GUID-C7FB5BC3-D5FE-451D-990C-E68F28215A4C"><title>Architectural
relationships</title> <p>The File Stores API is based on the abstract store
types defined by the Stores API. The underlying file handling is provided
by the File Server.</p> <p>The permanent file stores defined in this API are
used by the relational database API, DBMS, for data storage.</p> </section>
<section id="GUID-AD9259E7-ABE2-4EE7-B316-7B24EBE5353E"><title>Description</title> <p>The
API has five key concepts: file store base (<codeph>CFileStore</codeph>),
direct file store (<codeph>CDirectFileStore</codeph>), permanent file store
(<codeph>CPermanentFileStore</codeph>), dictionary file store (<codeph>CDictionaryFileStore</codeph>),
and file streams (<codeph>RFileWriteStream</codeph> and <codeph>RFileReadStream</codeph>).</p> <p><b>File
store base</b> </p> <p>This abstract base class provides basic behaviour for
file stores, such as reading a store from a specified file. </p> <p>File stores
are derived from the persistent store base (<codeph>CPersistentStore</codeph>)
provided by the Stores API. This means that they have a root stream, from
which all other streams within the store can be found.</p> <p>The file store
base class is <codeph>CFileStore</codeph>.</p> <p><b>Direct file store</b> </p> <p>A
direct file store implements a file store in which once the streams have been
committed and closed, they cannot subsequently be changed. They are used by
the type of application that treats the in-memory copy of its data as its
prime copy, and on saving, replaces the entire store. </p> <p>The direct file
store is a concrete type, derived from <codeph>CFileStore</codeph>, and is
provided by <codeph>CDirectFileStore</codeph>.</p> <p><b>Permanent file store</b> </p> <p>A
permanent file store implements a file store in which existing streams within
the store can be changed. They are used by the type of application which treats
the data in the store as its prime copy. Typically, the object network comprising
the application’s data is structured so that sections of data can be loaded
in, and, if changed, written back to the store. Memory is used as a workplace
for changing data.</p> <p>The permanent file store is a concrete type, derived
from <codeph>CFileStore</codeph>, and is provided by <codeph>CPermanentFileStore</codeph>.</p> <p><b>Dictionary
file store</b> </p> <p>The dictionary file store implements a dictionary store,
a network of streams each of which can be accessed via a UID, in file storage.</p> <p>The
dictionary file store is a concrete type, derived from <codeph>CDictionaryStore</codeph>,
and is provided by <codeph>CDictionaryFileStore</codeph>.</p> <p><b>File streams</b> </p> <p>File
streams allow standard files (<xref href="GUID-BE0804F6-4375-3C8A-8C83-968F510466E0.dita"><apiname>RFile</apiname></xref> objects as defined
in the File Server Client Side API), not file stores, to be written to as
streams. This can be simpler and more efficient than using the equivalent <xref href="GUID-BE0804F6-4375-3C8A-8C83-968F510466E0.dita"><apiname>RFile</apiname></xref> functions. </p> <p>The
file stream classes are <codeph>RFileReadStream</codeph> and <codeph>RFileWriteStream</codeph>.</p> </section>
</conbody><related-links>
<linklist>
<link href="GUID-5EAED550-5FFC-54A6-BB4A-720975B127B8.dita"><linktext>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>
<link href="GUID-13C95985-D16F-5A9E-A7F8-CAB637C4C6ED.dita"><linktext>DBMS Overview</linktext>
</link>
</linklist>
</related-links></concept>