diff -r 000000000000 -r 89d6a7a84779 Symbian3/SDK/Source/GUID-E26E46AE-914E-5F21-AB44-10F926BAA8AC.dita --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Symbian3/SDK/Source/GUID-E26E46AE-914E-5F21-AB44-10F926BAA8AC.dita Thu Jan 21 18:18:20 2010 +0000 @@ -0,0 +1,81 @@ + + + + + +EUserHlExample: +EUser High Level exampleThis example demonstrates how to use the EUser High Level library +and includes the ceratian features supported by the library. It also demonstrates +the usage of specific APIs associated with the EUser High Level Library. +
Purpose

This +example demonstrates the following features of EUserHL:

    +
  • String handling

  • +
  • Object creation and +automatic resource management

  • +
  • Memory usage by EUserHL +classes

  • +
+
Download

Click +on the following link to download the example: EUserHlExample.zip

Click: browse to view the example code.

+
Design and +implementation

The example implements three main functions:

    +
  • WalkthroughStringsL() demonstrates +string handling.

  • +
  • WalkthroughManagedL() demonstrates +object creation and resource management.

  • +
  • WalkthroughUsageL() demonstrates +memory usage by EUserHL library classes.

  • +

String handling

LString is designed +to be a self-managing, resizable alternative to some of the existing descriptor +types.

WalkthroughStringsL() demonstrates how LString can +be used in similar ways to the existing TDesC and TDes descriptor +classes, as well as showing some additional functions, including:

    +
  • LString::SetMaxlengthL()

  • +
  • LString::ReserveFreeCapacityL()

  • +
  • LString::Compress()

  • +
  • LString::Reset()

  • +

CStringUserTwoPhase is used to demonstrate the +use of LString s in the two-phase construction pattern. LCleanedupPtr is +used in place of the CleanupStack in the NewL() function.

CStringUserSinglePhase is +used to demonstrate the use of LString s in the single +phase construction pattern. A macro CONSTRUCTORS_MAY_LEAVE is +declared to ensure cleanup is correctly handled if the constructor leaves.

Object +creation and automatic resource management

The LCleanedUpXxx classes LCleanedupPtr, LCleanedupHandle, LCleanedupArray, LCleanedupGuard and LCleanedupRef classes +provide automatic resource management that avoids the need for the programmer +to use the cleanup stack.

WalkthroughManagedL() shows +how the various LCleanedUpXxx classes are used. It shows +how objects declared locally to a function (a pointer, a resource handle, +an array, and an object cleaned up using a TCleanupItem) +are deleted automatically when they go out of scope.

CManagedUserTwoPhase demonstrates +the use of the management classes in the two-phase construction pattern. LCleanedupPtr is +used in the NewL() function in place of the CleanupStack. LManagedXxx classes +(for example LManagedPtr and LManagedHandle) +are used to handle cleanup of member data.

Related APIs

CleanupStack

LCleanedupArray

LCleanedupGuard

LCleanedupHandle

LCleanedupPtr

LCleanedupRef

LManagedHandle

LManagedPtr

TCleanupItem

Memory +usage

WalkthroughUsageL() API demonstrates the +memory overhead of using EUserHL.

+
Building and +configuring

To build the example:

    +
  • You can build the example +from your IDE or the command line.

    If you use an IDE, import the bld.inf file +of the example into your IDE, and use the build command of the IDE.

    If +you use the command line, open a command prompt, and set the current directory +to the source code directory of the example. You can then build the example +with the SBSv1 build tools with the following commands:

    bldmake +bldfiles

    abld build

    How to use bldmake and How to use abld describe +how to use the SBSv1 build tools.

  • +
  • For the emulator, the +example builds an executable called euserhlexample.exe in +the epoc32\release\winscw\<udeb or urel>\ folder.

  • +
+
Running the +example

This is a console application. The user presses any key +to step through it and the emulator closes down on exit.

+
See also:

EUser +High Level Library

+
\ No newline at end of file