Symbian3/SDK/Source/GUID-74CBD580-01F8-5C68-A5FD-6331AAE7DF62.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 xml:lang="en" id="GUID-74CBD580-01F8-5C68-A5FD-6331AAE7DF62"><title>Introduction to store streams </title><prolog><metadata><keywords/></metadata></prolog><conbody><p>Store streams provide concrete stream types suitable for use in stores. The API is based on the stream interfaces defined by the Streaming API.</p> <p>Streams are usually created in the context of a <keyword>store</keyword>. Objects can be externalised to any store type, and then later re-internalised.</p> <p>Various types of stream are possible, such as streams which do encryption/decryption, or streams which convey data over a communications channel. Because the stream interface is polymorphic, <codeph>ExternalizeL()</codeph> and <codeph>InternalizeL()</codeph> functions work with any stream type.</p> <p>Streams within stores are encapsulated by one of two concrete classes:</p> <ul><li id="GUID-3D98CA10-F906-5760-AA9B-821CEA3C7633"><p>  <codeph>RStoreWriteStream</codeph> represents a stream which is being written. The class supports the creation and manipulation of a stream in a store.</p> </li> <li id="GUID-3B3FD174-8CC2-5A4D-BA93-A421818690C5"><p><codeph>RStoreReadStream</codeph> represents a stream which is being read. The class supports the opening and manipulation of an existing stream in a store.</p> </li> </ul> <p>Both concrete classes are derived from their respective abstract base classes, the write stream interface <codeph>RWriteStream</codeph>, and the read stream interface <codeph>RReadStream</codeph>.</p> <p>A stream which is being written is referred to as a <i>write stream</i> while a stream which is being read is referred to as a <i>read stream</i>.</p> <p>Applications must construct and open an <codeph>RStoreReadStream</codeph> object before they can read from a store stream and they must must construct an <codeph>RStoreWriteStream</codeph> object before they can write to a store stream.</p> <p>Although an application constructs <codeph>RStoreWriteStream</codeph> and <codeph>RStoreReadStream</codeph> objects to represent streams in a store, application objects only need to refer to the <codeph>RWriteStream</codeph> and <codeph>RReadStream</codeph> base classes, when externalising or internalising themselves to the stream.</p> <section id="GUID-7B87D875-3F37-4306-A44D-F99B679C7DC0"><title>See also</title> <p><xref href="GUID-6BF09365-09D7-5596-B802-1BE1757F51F6.dita">Streaming</xref> </p> <p><xref href="GUID-5CF5B8D6-C477-55D2-A036-2C090FA41D33.dita">The write stream interface</xref> </p> <p><xref href="GUID-E3210353-EEC2-56CB-AD75-309E5DCDEDD1.dita">The read stream interface</xref> </p> </section> </conbody></concept>