9 --> |
9 --> |
10 <!DOCTYPE concept |
10 <!DOCTYPE concept |
11 PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd"> |
11 PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd"> |
12 <concept id="GUID-B1D5B680-00E3-5702-985A-94256180E2D8" xml:lang="en"><title>Automatic |
12 <concept id="GUID-B1D5B680-00E3-5702-985A-94256180E2D8" xml:lang="en"><title>Automatic |
13 Resource Management</title><shortdesc>Automatic resource management is designed to increase the baseline |
13 Resource Management</title><shortdesc>Automatic resource management is designed to increase the baseline |
14 usability of Symbian platform for Symbian Developers. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody> |
14 usability of the Symbian platform for Symbian Developers. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody> |
15 <section><title>Need for Automatic resource management</title><p>The use of |
15 <section id="GUID-91B268D4-835A-46C8-B5E8-6C99580C2BF1"><title>Need for Automatic resource management</title><p>The use of |
16 the Symbian Cleanup Stack is more difficult, error-prone and requires writing |
16 the Symbian Cleanup Stack is more difficult, error-prone and requires writing |
17 extra code for explicit cleanup using the CleanupStack. In contrast, the Symbian |
17 extra code for explicit cleanup using the CleanupStack. In contrast, the Symbian |
18 C++ class templates for automatic resource management are relatively easier |
18 C++ class templates for automatic resource management are relatively easier |
19 to use. They provide automatic exception-safe cleanup upon normal or exceptional |
19 to use. They provide automatic exception-safe cleanup upon normal or exceptional |
20 exit from a scope, in which case they do not require writing any code for |
20 exit from a scope, in which case they do not require writing any code for |
21 invoking the cleanup of resources. The resources are automatically cleaned |
21 invoking the cleanup of resources. The resources are automatically cleaned |
22 up by the destructors of the template classes in that case. </p></section> |
22 up by the destructors of the template classes in that case. </p></section> |
23 <section><title>Characteristics of Automatic resource management</title><p>The |
23 <section id="GUID-C6274809-F4F2-4F24-9911-52F9E9EAE650"><title>Characteristics of Automatic resource management</title><p>The |
24 following are the characteristics of automatic resource management: </p> <ul> |
24 following are the characteristics of automatic resource management: </p> <ul> |
25 <li id="GUID-3A2FF8D0-FB26-5DBB-AD48-5381FF1BF3FA"><p>Improved usability versus |
25 <li id="GUID-3A2FF8D0-FB26-5DBB-AD48-5381FF1BF3FA"><p>Improved usability versus |
26 the cleanup stack and the manual authoring of destructors. </p> </li> |
26 the cleanup stack and the manual authoring of destructors. </p> </li> |
27 <li id="GUID-FEA29BB7-4A22-5B38-B729-778799A87C64"><p>Covering data member |
27 <li id="GUID-FEA29BB7-4A22-5B38-B729-778799A87C64"><p>Covering data member |
28 management as well as local variable management. </p> </li> |
28 management as well as local variable management. </p> </li> |
29 <li id="GUID-BB5C0699-F7D3-5137-A486-CD9A635195CB"><p>A comprehensive replacement |
29 <li id="GUID-BB5C0699-F7D3-5137-A486-CD9A635195CB"><p>A comprehensive replacement |
30 for the existing cleanup stack API. </p> </li> |
30 for the existing cleanup stack API. </p> </li> |
31 <li id="GUID-BD725E12-50A8-5741-BE49-D5054BA78813"><p>Ability to handle C-classes, |
31 <li id="GUID-BD725E12-50A8-5741-BE49-D5054BA78813"><p>Ability to handle C-classes, |
32 R-classes, and custom cleanups. </p> </li> |
32 R-classes, and custom cleanups. </p> </li> |
33 </ul></section> |
33 </ul></section> |
34 <section><title>Template classes</title><p>The following variants of the class |
34 <section id="GUID-0178F1B0-A710-45A9-ACC4-85401FE905AD"><title>Template classes</title><p>The following variants of the class |
35 templates for automatic resource management have been provided: </p> <ul> |
35 templates for automatic resource management have been provided: </p> <ul> |
36 <li id="GUID-B08EC001-AECA-50E0-BAA4-5A9779703350"><p> <xref href="GUID-24AEB510-9FB5-318C-BA1E-C6ACA0BB87BC.dita"><apiname> LCleanedup</apiname></xref> class |
36 <li id="GUID-B08EC001-AECA-50E0-BAA4-5A9779703350"><p> <xref href="GUID-24AEB510-9FB5-318C-BA1E-C6ACA0BB87BC.dita"><apiname> LCleanedup</apiname></xref> class |
37 templates </p> <p>The LCleanedup class templates provided are: </p> <table id="GUID-0D32DEDA-4F92-506E-8335-A0C182ECD7AD"> |
37 templates </p> <p>The LCleanedup class templates provided are: </p> <table id="GUID-0D32DEDA-4F92-506E-8335-A0C182ECD7AD"> |
38 <tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/> |
38 <tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/> |
39 <thead> |
39 <thead> |