Symbian3/PDK/Source/GUID-95448841-5E5B-54C4-85A7-DCE6D078E036.dita
author Dominic Pinkman <Dominic.Pinkman@Nokia.com>
Fri, 22 Jan 2010 18:26:19 +0000
changeset 1 25a17d01db0c
child 3 46218c8b8afa
permissions -rw-r--r--
Addition of the PDK content and example code for Documentation_content according to Feature bug 1607 and bug 1608
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
25a17d01db0c Addition of the PDK content and example code for Documentation_content according to Feature bug 1607 and bug 1608
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents:
diff changeset
     1
<?xml version="1.0" encoding="utf-8"?>
25a17d01db0c Addition of the PDK content and example code for Documentation_content according to Feature bug 1607 and bug 1608
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents:
diff changeset
     2
<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
25a17d01db0c Addition of the PDK content and example code for Documentation_content according to Feature bug 1607 and bug 1608
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents:
diff changeset
     3
<!-- This component and the accompanying materials are made available under the terms of the License 
25a17d01db0c Addition of the PDK content and example code for Documentation_content according to Feature bug 1607 and bug 1608
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents:
diff changeset
     4
"Eclipse Public License v1.0" which accompanies this distribution, 
25a17d01db0c Addition of the PDK content and example code for Documentation_content according to Feature bug 1607 and bug 1608
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents:
diff changeset
     5
and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
25a17d01db0c Addition of the PDK content and example code for Documentation_content according to Feature bug 1607 and bug 1608
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents:
diff changeset
     6
<!-- Initial Contributors:
25a17d01db0c Addition of the PDK content and example code for Documentation_content according to Feature bug 1607 and bug 1608
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents:
diff changeset
     7
    Nokia Corporation - initial contribution.
25a17d01db0c Addition of the PDK content and example code for Documentation_content according to Feature bug 1607 and bug 1608
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents:
diff changeset
     8
Contributors: 
25a17d01db0c Addition of the PDK content and example code for Documentation_content according to Feature bug 1607 and bug 1608
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents:
diff changeset
     9
-->
25a17d01db0c Addition of the PDK content and example code for Documentation_content according to Feature bug 1607 and bug 1608
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents:
diff changeset
    10
<!DOCTYPE concept
25a17d01db0c Addition of the PDK content and example code for Documentation_content according to Feature bug 1607 and bug 1608
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents:
diff changeset
    11
  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
25a17d01db0c Addition of the PDK content and example code for Documentation_content according to Feature bug 1607 and bug 1608
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents:
diff changeset
    12
<concept xml:lang="en" id="GUID-95448841-5E5B-54C4-85A7-DCE6D078E036"><title>Constructing an embedded store</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>Embedded stores are represented by an instance of the <codeph>CEmbeddedStore</codeph> class.</p> <p>A <codeph>CEmbeddedStore</codeph> object is constructed from a host stream. </p> <p>When the <codeph>CEmbeddedStore</codeph> object represents a new embedded store, it is constructed from an <codeph>RWriteStream</codeph> object; for example, a class might include the following code fragment in one of its functions:</p> <codeblock id="GUID-47D69E5D-909D-5EA3-96CD-3FB6ED5E77CB" xml:space="preserve">...
25a17d01db0c Addition of the PDK content and example code for Documentation_content according to Feature bug 1607 and bug 1608
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents:
diff changeset
    13
    // create the stream to contain the embedded store
25a17d01db0c Addition of the PDK content and example code for Documentation_content according to Feature bug 1607 and bug 1608
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents:
diff changeset
    14
RStoreWriteStream childStream;
25a17d01db0c Addition of the PDK content and example code for Documentation_content according to Feature bug 1607 and bug 1608
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents:
diff changeset
    15
                // we need to keep track of this stream id
25a17d01db0c Addition of the PDK content and example code for Documentation_content according to Feature bug 1607 and bug 1608
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents:
diff changeset
    16
iEmbeddedStoreId = childStream.CreateLC(iStore);
25a17d01db0c Addition of the PDK content and example code for Documentation_content according to Feature bug 1607 and bug 1608
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents:
diff changeset
    17
    // construct the embedded store
25a17d01db0c Addition of the PDK content and example code for Documentation_content according to Feature bug 1607 and bug 1608
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents:
diff changeset
    18
CPersistentStore* embeddedStore = CEmbeddedStore::NewLC(childStream);
25a17d01db0c Addition of the PDK content and example code for Documentation_content according to Feature bug 1607 and bug 1608
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents:
diff changeset
    19
...</codeblock> <p>Here, the code assumes that <codeph>iStore</codeph> refers to the top level store and <codeph>iEmbeddedStoreId</codeph> is a data member to hold the ID of the hosting stream.</p> <p>On successful construction, ownership of the host stream passes to the embedded store which means that the embedded store takes on the responsibility for closing the stream.</p> <p>When the <codeph>CEmbeddedStore</codeph> object represents an existing embedded store, it is constructed from an <codeph>RReadStream</codeph> object; for example, a class might include the following code fragment in one of its functions:</p> <codeblock id="GUID-A796CC6C-69C9-5F22-B7A1-30815086EAA3" xml:space="preserve">...
25a17d01db0c Addition of the PDK content and example code for Documentation_content according to Feature bug 1607 and bug 1608
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents:
diff changeset
    20
RStoreReadStream childStream;
25a17d01db0c Addition of the PDK content and example code for Documentation_content according to Feature bug 1607 and bug 1608
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents:
diff changeset
    21
childStream.OpenL(iStore,iEmbeddedStoreId);
25a17d01db0c Addition of the PDK content and example code for Documentation_content according to Feature bug 1607 and bug 1608
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents:
diff changeset
    22
iEmbeddedStore = CEmbeddedStore::FromL(childStream);
25a17d01db0c Addition of the PDK content and example code for Documentation_content according to Feature bug 1607 and bug 1608
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents:
diff changeset
    23
...</codeblock> <p>Where:</p> <ul><li id="GUID-7A3338F6-252E-5D47-9D22-CDD505222958"><p><codeph>iStore</codeph> refers to the top level store</p> </li> <li id="GUID-162A3315-AA91-55CD-B07A-2F02EDBCC5ED"><p><codeph>iEmbeddedStoreId</codeph> is a data member that holds the ID of the hosting stream</p> </li> <li id="GUID-8AE6849E-0BA8-5CB4-8F3F-B33CC4FEED4E"><p><codeph>iEmbeddedStore</codeph> holds a reference to the embedded store object.</p> </li> </ul> <p>When saving data, an application re-creates the embedded store by re-writing the complete partial object network to the embedded store, replacing any existing data.</p> </conbody></concept>