Symbian3/PDK/Source/GUID-B007634D-4D55-528A-8B85-6120C633AC8B.dita
changeset 5 f345bda72bc4
parent 3 46218c8b8afa
child 14 578be2adaf3e
equal deleted inserted replaced
4:4816d766a08a 5:f345bda72bc4
    12 <concept id="GUID-B007634D-4D55-528A-8B85-6120C633AC8B" xml:lang="en"><title>EUser
    12 <concept id="GUID-B007634D-4D55-528A-8B85-6120C633AC8B" xml:lang="en"><title>EUser
    13 High Level Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
    13 High Level Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
    14 <p>The EUser High Level (EUserHL) library introduces a new L-Class idiom.
    14 <p>The EUser High Level (EUserHL) library introduces a new L-Class idiom.
    15 L-Classes have characteristics close to standard C++ value and handle classes,
    15 L-Classes have characteristics close to standard C++ value and handle classes,
    16 including constructors, operators, and implicit operations may leave. </p>
    16 including constructors, operators, and implicit operations may leave. </p>
    17 <section><title>Purpose</title> <p>EUserHL introduces three APIs to improve
    17 <section id="GUID-3832C7E4-6930-474C-B98E-AB601C70455E"><title>Purpose</title> <p>EUserHL introduces three APIs to improve
    18 string handling, object creation and resource management. </p> </section>
    18 string handling, object creation and resource management. </p> </section>
    19 <section><title>Intended Audience:</title> <p>This document is intended to
    19 <section id="GUID-20EC6FD1-D23F-4936-8004-6B04ACBD34F0"><title>Intended Audience:</title> <p>This document is intended to
    20 be used by Symbian platform licensees and application developers. </p> </section>
    20 be used by the Symbian platform licensees and application developers. </p> </section>
    21 <section><title>EUserHL Library Details</title> <p>The DLL that provides the
    21 <section id="GUID-A9757824-28F9-4901-B9E7-BCDBAF954E70"><title>EUserHL Library Details</title> <p>The DLL that provides the
    22 functionality and the library to which your code must link is identified below. </p> <table id="GUID-35A8E4A4-E329-521E-8BE6-EE46B0B8C954">
    22 functionality and the library to which your code must link is identified below. </p> <table id="GUID-35A8E4A4-E329-521E-8BE6-EE46B0B8C954">
    23 <tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/>
    23 <tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/>
    24 <thead>
    24 <thead>
    25 <row>
    25 <row>
    26 <entry>DLL</entry>
    26 <entry>DLL</entry>
    35 <entry><p>The published interface for the EUserHL library. </p> </entry>
    35 <entry><p>The published interface for the EUserHL library. </p> </entry>
    36 </row>
    36 </row>
    37 </tbody>
    37 </tbody>
    38 </tgroup>
    38 </tgroup>
    39 </table> </section>
    39 </table> </section>
    40 <section><title>Functional Specification</title> <p>The EUserHL library is
    40 <section id="GUID-2F4E7D4D-B1BC-4BAC-A616-76A7F6140D0D"><title>Functional Specification</title> <p>The EUserHL library is
    41 a general purpose user library that provides a usability layer to hide away
    41 a general purpose user library that provides a usability layer to hide away
    42 some of the complexities of Symbian platform. </p> <p>The new <xref href="GUID-2C3DFAFD-A2DD-3E44-BB1A-580E60EDD8BC.dita"><apiname>LString</apiname></xref> class
    42 some of the complexities of the Symbian platform. </p> <p>The new <xref href="GUID-2C3DFAFD-A2DD-3E44-BB1A-580E60EDD8BC.dita"><apiname>LString</apiname></xref> class
    43 provides a self-managing, auto-extending wrapper around RBuf which removes
    43 provides a self-managing, auto-extending wrapper around RBuf which removes
    44 the need for the application developer to pre-declare the maximum length of
    44 the need for the application developer to pre-declare the maximum length of
    45 the descriptor. The class can be used as a local or member variable and is
    45 the descriptor. The class can be used as a local or member variable and is
    46 automatically cleaned up when it goes out of scope. <xref href="GUID-2C3DFAFD-A2DD-3E44-BB1A-580E60EDD8BC.dita"><apiname>LString</apiname></xref> provides
    46 automatically cleaned up when it goes out of scope. <xref href="GUID-2C3DFAFD-A2DD-3E44-BB1A-580E60EDD8BC.dita"><apiname>LString</apiname></xref> provides
    47 the essentially the same API as RBuf, but the RBuf methods that panic if the
    47 the essentially the same API as RBuf, but the RBuf methods that panic if the
    63 the safe handling of single phase construction. The automatic resource management
    63 the safe handling of single phase construction. The automatic resource management
    64 classes may be used as the basis for implementing leave-safe single-phase
    64 classes may be used as the basis for implementing leave-safe single-phase
    65 construction, since fully initialized data members protected in this way will
    65 construction, since fully initialized data members protected in this way will
    66 get destroyed if their containing classes leave during execution of their
    66 get destroyed if their containing classes leave during execution of their
    67 constructors. </p> </section>
    67 constructors. </p> </section>
    68 <section><title>Architectural Relationship</title> <p>EUserHL provides three
    68 <section id="GUID-290FDAFB-8C32-44B8-B071-110F69FB0B9E"><title>Architectural Relationship</title> <p>EUserHL provides three
    69 technology areas, namely strings, automatic resource management, and single
    69 technology areas, namely strings, automatic resource management, and single
    70 phase construction. The class LString is derived from RBuf and HBufc is a
    70 phase construction. The class LString is derived from RBuf and HBufc is a
    71 part of RBuf. </p> <p>EUserHL is a plugin to three <xref href="GUID-8919270A-B5CE-302D-B7CE-3A4680D5E8CF.dita"><apiname>EUser</apiname></xref> interfaces
    71 part of RBuf. </p> <p>EUserHL is a plugin to three <xref href="GUID-8919270A-B5CE-302D-B7CE-3A4680D5E8CF.dita"><apiname>EUser</apiname></xref> interfaces
    72 including strings, which are instances or buffers, <xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita"><apiname>RBuf</apiname></xref>, <xref href="GUID-A103FB19-60B3-3E45-97A5-1F295934ACA1.dita"><apiname>HBufC</apiname></xref> and <xref href="GUID-49D4E917-57EA-39AE-8941-144AA8AC2584.dita"><apiname>TDes</apiname></xref>. </p> <p><b>Description</b> </p> <p>EUserHL makes developing for Symbian platform easier by removing
    72 including strings, which are instances or buffers, <xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita"><apiname>RBuf</apiname></xref>, <xref href="GUID-A103FB19-60B3-3E45-97A5-1F295934ACA1.dita"><apiname>HBufC</apiname></xref> and <xref href="GUID-49D4E917-57EA-39AE-8941-144AA8AC2584.dita"><apiname>TDes</apiname></xref>. </p> <p><b>Description</b> </p> <p>EUserHL makes developing for the Symbian platform easier by removing
    73 some of the Symbianisms and making things like string handling, resource management
    73 some of the Symbianisms and making things like string handling, resource management
    74 and error handling and object creation more familiar with standard C++ practices. </p> <p>EUserHL's
    74 and error handling and object creation more familiar with standard C++ practices. </p> <p>EUserHL's
    75 functionality is split into the following: </p> <ul>
    75 functionality is split into the following: </p> <ul>
    76 <li id="GUID-74905CAF-AB9E-54CF-844A-27F5DF2FACA4"><p>Strings </p> </li>
    76 <li id="GUID-74905CAF-AB9E-54CF-844A-27F5DF2FACA4"><p>Strings </p> </li>
    77 <li id="GUID-311DEC6F-5258-5BE7-BCC1-54FEF4D74B9D"><p>Automatic Resource Management </p> </li>
    77 <li id="GUID-311DEC6F-5258-5BE7-BCC1-54FEF4D74B9D"><p>Automatic Resource Management </p> </li>
   208 <entry><p>Generic automatic memory management </p> </entry>
   208 <entry><p>Generic automatic memory management </p> </entry>
   209 </row>
   209 </row>
   210 </tbody>
   210 </tbody>
   211 </tgroup>
   211 </tgroup>
   212 </table> </section>
   212 </table> </section>
   213 <section><title>Using EUserHL</title> <p>EUserHL may be used to: </p> <ul>
   213 <section id="GUID-D0295359-BE09-4F45-BA24-50892163B41B"><title>Using EUserHL</title> <p>EUserHL may be used to: </p> <ul>
   214 <li id="GUID-0BCE773E-470B-5C83-91EB-0A8B4EE31F66"><p><xref href="GUID-B419D99E-8312-5336-9693-3ED8DFCD0559.dita"> Automatic
   214 <li id="GUID-0BCE773E-470B-5C83-91EB-0A8B4EE31F66"><p><xref href="GUID-B419D99E-8312-5336-9693-3ED8DFCD0559.dita"> Automatic
   215 Resource Management Tutorial</xref>  </p> </li>
   215 Resource Management Tutorial</xref>  </p> </li>
   216 <li id="GUID-1052381F-0F5C-511D-B11C-C65AFBBE03E3"><p><xref href="GUID-69D916D3-ED05-58DA-BA42-CE4D7E4F6482.dita">Automatic
   216 <li id="GUID-1052381F-0F5C-511D-B11C-C65AFBBE03E3"><p><xref href="GUID-69D916D3-ED05-58DA-BA42-CE4D7E4F6482.dita">Automatic
   217 Resource Management Class Templates Tutorial</xref>  </p> </li>
   217 Resource Management Class Templates Tutorial</xref>  </p> </li>
   218 <li id="GUID-B0ED575A-01F1-5F81-A798-AC6978799901"><p><xref href="GUID-3799F0DA-B99C-55BB-B44F-63B971DF1865.dita"> Cleanup
   218 <li id="GUID-B0ED575A-01F1-5F81-A798-AC6978799901"><p><xref href="GUID-3799F0DA-B99C-55BB-B44F-63B971DF1865.dita"> Cleanup
   222 <li id="GUID-AE5A4093-20C9-5182-9603-28ECE6634011"><p><xref href="GUID-5872329F-2B52-5F52-83C1-205F2F933877.dita">OR_LEAVE
   222 <li id="GUID-AE5A4093-20C9-5182-9603-28ECE6634011"><p><xref href="GUID-5872329F-2B52-5F52-83C1-205F2F933877.dita">OR_LEAVE
   223 macro Tutorial</xref>  </p> </li>
   223 macro Tutorial</xref>  </p> </li>
   224 <li id="GUID-971A54D9-EA95-5669-A079-A09963D69FD7"><p><xref href="GUID-B9F07057-4B31-5FE8-BE4C-98CC8151CD29.dita">Single
   224 <li id="GUID-971A54D9-EA95-5669-A079-A09963D69FD7"><p><xref href="GUID-B9F07057-4B31-5FE8-BE4C-98CC8151CD29.dita">Single
   225 Phase Constructor Tutorial</xref>  </p> </li>
   225 Phase Constructor Tutorial</xref>  </p> </li>
   226 </ul> </section>
   226 </ul> </section>
   227 <section><title>See Also</title> <p><xref href="GUID-ECE93783-F571-51DA-AB92-EDDA8618A85C.dita">EUser
   227 <section id="GUID-50B67735-3DA3-4740-9A1B-070FF76CD087"><title>See Also</title> <p><xref href="GUID-ECE93783-F571-51DA-AB92-EDDA8618A85C.dita">EUser
   228 High Level Library Concepts</xref>  </p> <p><xref href="GUID-D33EB877-CCCB-527B-8AFC-4A8385C55E78.dita">EUser
   228 High Level Library Concepts</xref>  </p> <p><xref href="GUID-D33EB877-CCCB-527B-8AFC-4A8385C55E78.dita">EUser
   229 High Level Library Tutorials</xref>  </p> </section>
   229 High Level Library Tutorials</xref>  </p> </section>
   230 </conbody></concept>
   230 </conbody></concept>