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> |