This 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.
This example demonstrates the following features of EUserHL:
Click on the following link to download the example: EUserHlExample.zip
Click: browse to view the example code.
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:
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
Memory usage
WalkthroughUsageL()
API demonstrates the memory overhead of using EUserHL.
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
For the emulator,
the example builds an executable called euserhlexample.exe
in the epoc32\release\winscw\<udeb or
urel>\
folder.
This is a console application. The user presses any key to step through it and the emulator closes down on exit.