Symbian3/SDK/Source/GUID-C8C2645A-F5A4-53F0-8F43-485FC0B472DC.dita
changeset 0 89d6a7a84779
equal deleted inserted replaced
-1:000000000000 0:89d6a7a84779
       
     1 <?xml version="1.0" encoding="utf-8"?>
       
     2 <!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
       
     3 <!-- This component and the accompanying materials are made available under the terms of the License 
       
     4 "Eclipse Public License v1.0" which accompanies this distribution, 
       
     5 and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
       
     6 <!-- Initial Contributors:
       
     7     Nokia Corporation - initial contribution.
       
     8 Contributors: 
       
     9 -->
       
    10 <!DOCTYPE concept
       
    11   PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
       
    12 <concept id="GUID-C8C2645A-F5A4-53F0-8F43-485FC0B472DC" xml:lang="en"><title>External
       
    13 and internal representations</title><shortdesc>Describes the <codeph>Internalize()</codeph> and <codeph>Externalize()</codeph> functions
       
    14 for representing objects.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
       
    15 <p>Since packages may be used to describe an object of any type, and may be
       
    16 conveniently written to a file and sent over communications links, it is tempting
       
    17 to use them to transmit all application data types.</p>
       
    18 <p><note>This is strongly discouraged in Symbian platform programming.</note> </p>
       
    19 <p>Packages directly package the <i>internal</i> representation of an object.
       
    20 They should only be used when the internal representation is expected by all
       
    21 recipients of the package. This would be the case, say, with inter thread
       
    22 data transfer or certain rare types of file.</p>
       
    23 <p>When an object is stored on file, or sent over a link, it is usually desirable
       
    24 to define an <i>external</i> representation which may be safely read by <i>any</i> Symbian
       
    25 platform implementation, even on a machine with different endianness, different
       
    26 compiler options, and different machine word size.</p>
       
    27 <p>In such a case, writing a struct directly is inappropriate. Instead, the <codeph>InternalizeL()</codeph> and <codeph>ExternalizeL()</codeph> functions
       
    28 should be implemented for the object and should encapsulate all internalisation
       
    29 and externalisation. The stream interface should be used, which may refer
       
    30 to file, communications, clipboard and a number of other possibilities.</p>
       
    31 </conbody></concept>