CCoeEnv Class Reference

class CCoeEnv : public CActive

Control environment.

CCoeEnv provides an active environment for creating controls. It implements active objects and an active scheduler, which provide access to the window server, simplifying the API for application programs. It also provides utility functions that are useful to many applications.

When a standard event occurs, the active scheduler calls CCoeEnv::RunL() . When a redraw event occurs, it calls CCoeRedrawer::RunL() . Priority key events must be accessed using the Window Server API directly.

Note: standard events are all events except redraw events and priority key events.

Inherits from

Public Member Functions
CCoeEnv ()
~CCoeEnv ()
IMPORT_C void AddFepObserverL (MCoeFepObserver &)
IMPORT_C void AddFocusObserverL ( MCoeFocusObserver &)
IMPORT_C void AddForegroundObserverL ( MCoeForegroundObserver &)
IMPORT_C void AddMessageMonitorObserverL ( MCoeMessageMonitorObserver &)
IMPORT_C void AddMessageObserverL ( MCoeMessageObserver &)
IMPORT_C void AddObserverOfLoadedFepL ( MCoeObserverOfLoadedFep &)
IMPORT_C void AddResourceChangeObserverL ( MCoeResourceChangeObserver &)
IMPORT_C TInt AddResourceFileL (const TDesC &)
void AddStatic ( CCoeStatic *)
IMPORT_C HBufC16 * AllocReadResourceAsDes16L ( TInt )
IMPORT_C HBufC16 * AllocReadResourceAsDes16LC ( TInt )
IMPORT_C HBufC8 * AllocReadResourceAsDes8L ( TInt )
IMPORT_C HBufC8 * AllocReadResourceAsDes8LC ( TInt )
HBufC * AllocReadResourceL ( TInt )
HBufC * AllocReadResourceLC ( TInt )
TInt AppStartupInstrumentationEventIdBase ()
CCoeAppUi * AppUi ()
IMPORT_C void AvailableFepsL ( RArray < TUid > &, CDesCArray *)
IMPORT_C void BringOwnerToFront ()
IMPORT_C void ConstructL ()
IMPORT_C void ConstructL ( TBool )
IMPORT_C void ConstructL ( TBool , TInt )
IMPORT_C void ConstructL ( TBool , TInt , TInt )
TBool ControlStateChange ()
IMPORT_C CFbsFont * CreateDeviceFontL ( CGraphicsDevice *, const TFontSpec &)
IMPORT_C CWindowGc * CreateGcL ()
IMPORT_C void CreateResourceReaderLC ( TResourceReader &, TInt )
IMPORT_C CFbsFont * CreateScreenFontL (const TFontSpec &)
IMPORT_C const CCoeFontProvider & DefaultFontProvider ()
IMPORT_C CCoeTextDrawerBase & DefaultTextDrawer ()
IMPORT_C void DeleteResourceFile ( TInt )
IMPORT_C void DestroyEnvironment ()
IMPORT_C void DisableExitChecks ( TBool )
IMPORT_C TBool DisableShutdownChecks ()
IMPORT_C void DoCancel ()
void DoFlush ()
void EnsureCorrectFepIsLoadedL ()
void EnsureSpecifiedFepIsLoadedL ( TUid )
IMPORT_C void Execute ()
IMPORT_C void ExecuteD ()
IMPORT_C void ExecuteFepSettingsDialogL ( TUid )
IMPORT_C CCoeFep * Fep ()
IMPORT_C TUid FepUid ()
IMPORT_C CCoeStatic * FindStatic ( TUid )
IMPORT_C void Flush ( TTimeIntervalMicroSeconds32 )
TInt FocusObserverNotificationIdentifier ()
TBool FocusObserverNotificationIsStillPending ( TInt )
IMPORT_C void ForEachFepObserverCall ( TCoeFepObserverFunction )
IMPORT_C void Format128 ( TDes &, TInt , ...)
IMPORT_C void Format256 ( TDes &, TInt , ...)
RFs & FsSession ()
IMPORT_C void GetMessageNotifyingObserversLC ( TUint32 , TUid &, TPtr8 &, const TWsEvent &)
IMPORT_C void HandleError ( TInt )
CVwsSessionWrapper * InitViewServerSessionL ( MVwsSessionWrapperObserver &)
IMPORT_C void InputCapabilitiesChanged ()
IMPORT_C void InstallFepL ( TUid )
IMPORT_C void InstallFepL ( TUid , const TBool )
IMPORT_C TBool IsRedrawEventPending ()
IMPORT_C TBool IsResourceAvailableL ( TInt )
TBool IsSchedulerRunning ()
IMPORT_C TBool IsWservEventPending ()
const TWsEvent & LastEvent ()
IMPORT_C void LeaveWithErrorText (const TDesC &, const TDesC *)
const CFont * NormalFont ()
void NotifyFocusObserversOfDestructionOfFocusedItem ()
void NotifyForegroundObserversOfGainingForeground ()
void NotifyForegroundObserversOfLosingForeground ()
void NotifyMessageMonitorObserversOfEvent (const TWsEvent &)
void NotifyResourceObserversOfChangeInResource ()
IMPORT_C void PrepareToExit ()
void QueueNotificationToFocusObserversOfChangeInFocus ()
IMPORT_C CDesC16ArrayFlat * ReadDesC16ArrayResourceL ( TInt )
IMPORT_C CDesC8ArrayFlat * ReadDesC8ArrayResourceL ( TInt )
CDesCArrayFlat * ReadDesCArrayResourceL ( TInt )
void ReadResource ( TDes &, TInt )
IMPORT_C void ReadResourceAsDes16 ( TDes16 &, TInt )
IMPORT_C void ReadResourceAsDes16L ( TDes16 &, TInt )
IMPORT_C void ReadResourceAsDes8 ( TDes8 &, TInt )
IMPORT_C void ReadResourceAsDes8L ( TDes8 &, TInt )
void ReadResourceL ( TDes &, TInt )
void RefetchPixelMappingL ()
IMPORT_C void ReleaseScreenFont ( CFont *)
IMPORT_C void RemoveFepObserver (MCoeFepObserver &)
IMPORT_C void RemoveFocusObserver ( MCoeFocusObserver &)
IMPORT_C void RemoveForegroundObserver ( MCoeForegroundObserver &)
IMPORT_C void RemoveMessageMonitorObserver ( MCoeMessageMonitorObserver &)
IMPORT_C void RemoveMessageObserver ( MCoeMessageObserver &)
IMPORT_C void RemoveObserverOfLoadedFep ( MCoeObserverOfLoadedFep &)
IMPORT_C void RemoveResourceChangeObserver ( MCoeResourceChangeObserver &)
RWindowGroup & RootWin ()
IMPORT_C RWindowGroup * RootWin ( TInt )
IMPORT_C void RunL ()
CWsScreenDevice * ScreenDevice ()
IMPORT_C CWsScreenDevice * ScreenDevice ( TInt )
IMPORT_C CCoeAppUi * SetAppUi ( CCoeAppUi *)
IMPORT_C void SetZoomFactor (const TZoomFactor &)
IMPORT_C void SimulateKeyEventL (const TKeyEvent &, TEventCode )
IMPORT_C CCoeEnv * Static ()
IMPORT_C CCoeStatic * Static ( TUid )
TInt SupportedPointers ()
IMPORT_C void SuppressNextFlush ()
IMPORT_C CWindowGc * SwapSystemGc ( CWindowGc *)
IMPORT_C void SyncNotifyFocusObserversOfChangeInFocus ()
CWindowGc & SystemGc ()
IMPORT_C TVersion Version ()
RWsSession & WsSession ()
IMPORT_C TZoomFactor ZoomFactor ()
Protected Member Functions
IMPORT_C TInt CoeEnvConstructorError ()
IMPORT_C void DestroyEnvironmentEnd ()
IMPORT_C void DestroyEnvironmentStatic ()
IMPORT_C void DestroyScreen ()
TDes & ErrorContextText ()
TDes & ErrorText ()
IMPORT_C TTypeUid::Ptr MopSupplyObject ( TTypeUid )
IMPORT_C void SetAppStartupInstrumentationEventIdBaseL ( TInt )
Private Member Functions
void AddObserverL ( TAny *, RGenericPointerArray &)
void ConnectToFileServerL ()
void ConnectToWindowServerL ()
void CreateActiveSchedulerL ()
void DeleteArrayOfScreensItems ()
void DestroyAllResourceFiles ()
RResourceFile * DoResourceFileForIdL ( TInt )
void InitRootWindowL ( TBool , TInt )
void InitScreenL ( TInt )
IMPORT_C void InitSystemFontsL ()
void InitSystemGcL ()
TUint InitialHandleCount ()
void PopulateArrayOfScreenItemsL ()
void RemoveObserver ( TAny *, RGenericPointerArray &)
void RequestEventNotification ()
IMPORT_C void Reserved_1 ()
IMPORT_C void Reserved_2 ()
RResourceFile & ResourceFileForId ( TInt )
IMPORT_C TInt ResourceFileVersionNumber ()
IMPORT_C TInt RunError ( TInt )
void SetInitialHandleCount ()
void UpdateStatic ( CCoeAppUi *)
Inherited Functions
CActive::CActive(TInt)
CActive::Cancel()
CActive::Deque()
CActive::Extension_(TUint,TAny *&,TAny *)
CActive::IsActive()const
CActive::IsAdded()const
CActive::Priority()const
CActive::SetActive()
CActive::SetPriority(TInt)
CActive::~CActive()
CBase::CBase()
CBase::Delete(CBase *)
CBase::operator new(TUint)
CBase::operator new(TUint,TAny *)
CBase::operator new(TUint,TLeave)
CBase::operator new(TUint,TLeave,TUint)
CBase::operator new(TUint,TUint)
CBase::~CBase()
Private Member Enumerations
enum TFlags { ENoShutdownChecks  = 0x0001, EExtraPointerIsErrorCode  = 0x0002, ESchedulerIsRunning  = 0x0004 }
Inherited Enumerations
CActive:TPriority
Protected Attributes
CCoeAppUi * iAppUi
RFs iFsSession
TWsEvent iLastEvent
const CFont * iNormalFont
CArrayFix < RResourceFile > * iResourceFileArray
RWindowGroup iRootWin
CWsScreenDevice * iScreen
CWindowGc * iSystemGc
RWsSession iWsSession
Private Attributes
CTrapCleanup * iCleanup
TUint iEnvFlags
TDes * iErrorContextText
TDes * iErrorText
CCoeEnvExtra * iExtra
Inherited Attributes
CActive::iStatus

Constructor & Destructor Documentation

CCoeEnv()

IMPORT_C CCoeEnv ( )

Default constructor.

Note - Construction of the CCoeEnv is not complete until ConstructL() has been called.

This function raises a CONE 2 panic if the application already owns a CCoeEnv .

~CCoeEnv()

IMPORT_C ~CCoeEnv ( )

Destructor.

This function deletes any resources owned by the CCoeEnv that were not deleted by DestroyEnvironment() .

Member Functions Documentation

AddFepObserverL(MCoeFepObserver &)

IMPORT_C void AddFepObserverL ( MCoeFepObserver & aFepObserver )

Adds the specified MCoeFepObserver to the FEP observer list.

panic
CONE 18 aFepObserver is NULL.
panic
CONE 21 aFepObserver has already been added to the list.

Parameters

MCoeFepObserver & aFepObserver The FEP observer to be added to the list.

AddFocusObserverL(MCoeFocusObserver &)

IMPORT_C void AddFocusObserverL ( MCoeFocusObserver & aFocusObserver )

Adds the specified MCoeFocusObserver to the focus observer list.

panic
CONE 18 aFocusObserver is NULL.
panic
CONE 21 aFocusObserver has already been added to the list.

Parameters

MCoeFocusObserver & aFocusObserver The focus observer to be added to the list.

AddForegroundObserverL(MCoeForegroundObserver &)

IMPORT_C void AddForegroundObserverL ( MCoeForegroundObserver & aForegroundObserver )

Adds the specified MCoeForegroundObserver to the foreground observer list.

panic
CONE 18 aForegroundObserver is NULL.
panic
CONE 21 aForegroundObserver has already been added to the list.

Parameters

MCoeForegroundObserver & aForegroundObserver The foreground observer to be added to the list.

AddMessageMonitorObserverL(MCoeMessageMonitorObserver &)

IMPORT_C void AddMessageMonitorObserverL ( MCoeMessageMonitorObserver & aMessageMonitorObserver )

Adds the specified MCoeMessageMonitorObserver to the message observer list

Parameters

MCoeMessageMonitorObserver & aMessageMonitorObserver The visibility change observer to be added to the list.

AddMessageObserverL(MCoeMessageObserver &)

IMPORT_C void AddMessageObserverL ( MCoeMessageObserver & aMessageObserver )

Adds the specified MCoeMessageObserver to the message observer list.

RemoveMessageObserver()

Parameters

MCoeMessageObserver & aMessageObserver The message observer to be added to the list.

AddObserverL(TAny *, RGenericPointerArray &)

void AddObserverL ( TAny * aObserver,
RGenericPointerArray & aArray
) [private]

Parameters

TAny * aObserver
RGenericPointerArray & aArray

AddObserverOfLoadedFepL(MCoeObserverOfLoadedFep &)

IMPORT_C void AddObserverOfLoadedFepL ( MCoeObserverOfLoadedFep & aObserverOfLoadedFep )

Adds the specified MCoeObserverOfLoadedFep to the loaded FEP list.

This enables objects to be notified when a front-end processor is loaded.

Parameters

MCoeObserverOfLoadedFep & aObserverOfLoadedFep The loaded FEP observer to be added to the list.

AddResourceChangeObserverL(MCoeResourceChangeObserver &)

IMPORT_C void AddResourceChangeObserverL ( MCoeResourceChangeObserver & aResourceChangeObserver )

Adds the specified MCoeResourceChangeObserver to the resource change observer list.

Parameters

MCoeResourceChangeObserver & aResourceChangeObserver The resource change observer to be added to the list.

AddResourceFileL(const TDesC &)

IMPORT_C TInt AddResourceFileL ( const TDesC & aFileName )

Adds the specified resource file to the list maintained by CCoeEnv .

Resource files are access counted so AddResourceFileL() can be called several times for the same resource file. However, care should be taken to call DeleteResourceFile() for each resource file added to the list.

panic
CONE 15 The resource file has no NAME statement (i.e. has no offset).
RResourceFile::Offset() ResourceFileVersionNumber()

Parameters

const TDesC & aFileName The resource file name.

AddStatic(CCoeStatic *)

void AddStatic ( CCoeStatic * aStatic )

Parameters

CCoeStatic * aStatic

AllocReadResourceAsDes16L(TInt)

IMPORT_C HBufC16 * AllocReadResourceAsDes16L ( TInt aResourceId ) const

Reads a resource into a 16 bit heap buffer, allocating the buffer.

The calling program must destroy the heap descriptor when it is no longer needed.

Parameters

TInt aResourceId The numeric ID of the resource to be read.

AllocReadResourceAsDes16LC(TInt)

IMPORT_C HBufC16 * AllocReadResourceAsDes16LC ( TInt aResourceId ) const

Reads a resource into a 16 bit heap buffer, allocating the buffer and pushing it onto the cleanup stack.

The calling program must destroy the heap descriptor when it is no longer needed.

RResourceFile::AllocReadL()

Parameters

TInt aResourceId The numeric ID of the resource to be read.

AllocReadResourceAsDes8L(TInt)

IMPORT_C HBufC8 * AllocReadResourceAsDes8L ( TInt aResourceId ) const

Reads a resource into an 8 bit heap buffer, allocating the buffer.

The calling program must destroy the heap descriptor when it is no longer needed.

RResourceFile::AllocReadL()

Parameters

TInt aResourceId The numeric ID of the resource to be read.

AllocReadResourceAsDes8LC(TInt)

IMPORT_C HBufC8 * AllocReadResourceAsDes8LC ( TInt aResourceId ) const

Reads a resource into an 8 bit heap buffer, allocating the buffer and pushing it onto the cleanup stack.

The calling program must destroy the heap descriptor when it is no longer needed.

RResourceFile::AllocReadL()

Parameters

TInt aResourceId The numeric ID of the resource to be read.

AllocReadResourceL(TInt)

HBufC * AllocReadResourceL ( TInt aResourceId ) const [inline]

Reads a resource into a heap descriptor, allocating memory for it.

Note: the calling program must destroy the heap descriptor when it is no longer needed.

RResourceFile::AllocReadL()

Parameters

TInt aResourceId The numeric ID of the resource to be read.

AllocReadResourceLC(TInt)

HBufC * AllocReadResourceLC ( TInt aResourceId ) const [inline]

Reads a specified resource into a heap descriptor, allocating memory for it, and pushing the descriptor onto the cleanup stack.

The calling program should pop and destroy the heap descriptor when it is no longer needed.

RResourceFile::AllocReadLC()

Parameters

TInt aResourceId The numeric ID of the resource to be read.

AppStartupInstrumentationEventIdBase()

TInt AppStartupInstrumentationEventIdBase ( )

AppUi()

CCoeAppUi * AppUi ( ) const [inline]

Gets the application UI owned by this application.

AvailableFepsL(RArray< TUid > &, CDesCArray *)

IMPORT_C void AvailableFepsL ( RArray < TUid > & aUids,
CDesCArray * aDisplayNames
)

Gets the UIDs, and optionally display names, of all the secure FEPs that are available.

Parameters

RArray < TUid > & aUids The array of FEP UIDs to be filled.
CDesCArray * aDisplayNames The array of FEP display names to be filled. May be passed as NULL if display names are not required.

BringOwnerToFront()

IMPORT_C void BringOwnerToFront ( )

Brings the application's owning window group to the front of the screen and gives it keyboard focus.

This is done by giving the owning window group an ordinal position of zero.

CoeEnvConstructorError()

IMPORT_C TInt CoeEnvConstructorError ( ) const [protected]

Return an error code if something failed during early c'tor construction.

ConnectToFileServerL()

void ConnectToFileServerL ( ) [private]

ConnectToWindowServerL()

void ConnectToWindowServerL ( ) [private]

ConstructL()

IMPORT_C void ConstructL ( )

Completes construction of the CCoeEnv object.

It calls the other ConstructL() overload specifying ETrue as the initial focus state.

ConstructL(TBool)

IMPORT_C void ConstructL ( TBool aInitialFocusState )

Completes construction of the CCoeEnv .

It is called by the other overload, with aInitialFocusState set to ETrue.

Parameters

TBool aInitialFocusState Window group initial focus state. If ETrue, keyboard focus is enabled, otherwise keyboard focus is disabled.

ConstructL(TBool, TInt)

IMPORT_C void ConstructL ( TBool aInitialFocusState,
TInt aDefaultScreenNumber
)

Completes construction of the CCoeEnv . It can be called by the previous overload. It calls the next overload, setting the default window group ID to 0 which is not a valid ID

Parameters

TBool aInitialFocusState Window group initial focus state. If ETrue, keyboard focus is enabled, otherwise keyboard focus is disabled.
TInt aDefaultScreenNumber The default screen number should be zero.

ConstructL(TBool, TInt, TInt)

IMPORT_C void ConstructL ( TBool aInitialFocusState,
TInt aDefaultScreenNumber,
TInt aWindowGroupID
)

Completes construction of the CCoeEnv .

All of the previous ConstructL() overloads end up at this method.

This function creates an active scheduler, and adds active objects to it for standard and redraw events. The active scheduler is not started, however, and no events are received, until ExecuteD() is called. It also does the following:

  • creates a connection to the window server.

  • creates a connection to the file server so that the control environment can access resource files

  • creates a screen device, the application's window group, a standard font, and a graphics context (the system GC).

The window group is constructed with the initial focus state aInitialFocusState, which automatically takes keyboard focus when it is created.

Parameters

TBool aInitialFocusState Window group initial focus state. If ETrue, keyboard focus is enabled, otherwise keyboard focus is disabled.
TInt aDefaultScreenNumber The default screen number
TInt aWindowGroupID The window group ID which will be set as the parent

ControlStateChange()

TBool ControlStateChange ( )

Return the status of the report control state change.

CreateActiveSchedulerL()

void CreateActiveSchedulerL ( ) [private]

CreateDeviceFontL(CGraphicsDevice *, const TFontSpec &)

IMPORT_C CFbsFont * CreateDeviceFontL ( CGraphicsDevice * aDevice,
const TFontSpec & aFontSpec
)

Creates a font for the specified graphics device.

If you wish to use the default screen device as the graphics device, use CreateScreenFontL() instead of this function.

This function calls GetNearestFontToMaxHeightInTwips() on the graphics device given by aDevice, passing it the font defined by aFontSpec.

All fonts created by this function should be released using MGraphicsDeviceMap::ReleaseFont() , when they are no longer required.

Note that the font will not be scaled automatically when the control's zoom factor is changed using CCoeControl::SetZoomFactor(). This is also the case for NormalFont() , CEikonEnv::LegendFont(), CEikonEnv::TitleFont(), CEikonEnv::AnnotationFont(), CEikonEnv::DenseFont().

To avoid this problem, and also make resource management much easier, it is highly recommended to use CCoeControl::ScreenFont() instead.

CCoeEnv::CreateScreenFontL() CCoeControl::ScreenFont() CCoeFontProvider

Parameters

CGraphicsDevice * aDevice The graphics device for which to create the font.
const TFontSpec & aFontSpec The font specification.

CreateGcL()

IMPORT_C CWindowGc * CreateGcL ( )

Fully constructs a new graphics context.

CCoeEnv calls this function during construction to create the system graphics context, which can be accessed using SystemGc() . Hence the system graphics context is always available.

SystemGc()

CreateResourceReaderLC(TResourceReader &, TInt)

IMPORT_C void CreateResourceReaderLC ( TResourceReader & aReader,
TInt aResourceId
) const

Reads a resource from a resource file and sets its resource reader.

The resource reader can subsequently be used to read resource data from the resource. The resource reader is also placed on the cleanup stack.

Note: the GUI framework passes a resource reader as an argument to CCoeControl::ConstructFromResourceL() , with the resource reader's buffer already set to contain the relevant resource for that control.

Parameters

TResourceReader & aReader The resource reader.
TInt aResourceId The numeric ID of the resource to be read.

CreateScreenFontL(const TFontSpec &)

IMPORT_C CFbsFont * CreateScreenFontL ( const TFontSpec & aFontSpec )

Creates a font for the default graphics device, based on the specified TFontSpec .

All fonts created using this function should be released using ReleaseScreenFont() when they are no longer required.

Note that the font will not be scaled automatically when the zoom factor is changed using CCoeControl::SetZoomFactor(). This is also the case for NormalFont() , CEikonEnv::LegendFont(), CEikonEnv::TitleFont(), CEikonEnv::AnnotationFont(), CEikonEnv::DenseFont().

To avoid this problem, and also make resource management much easier, it is highly recommended to use CCoeControl::ScreenFont() instead.

CCoeControl::ScreenFont() CCoeFontProvider

Parameters

const TFontSpec & aFontSpec The font specification.

DefaultFontProvider()

IMPORT_C const CCoeFontProvider & DefaultFontProvider ( ) const

This function returns the default font provider.

DefaultTextDrawer()

IMPORT_C CCoeTextDrawerBase & DefaultTextDrawer ( ) const

This function returns the default text drawer.

DeleteArrayOfScreensItems()

void DeleteArrayOfScreensItems ( ) [private]

This function deletes the array of TScreenItems

DeleteResourceFile(TInt)

IMPORT_C void DeleteResourceFile ( TInt aOffset )

Deletes the specified resource file from the list maintained by CCoeEnv .

panic
CONE 13 The specified resource file does not exist in the list.

Parameters

TInt aOffset The offset value defined for the resource file to delete.

DestroyAllResourceFiles()

void DestroyAllResourceFiles ( ) [private]

DestroyEnvironment()

IMPORT_C void DestroyEnvironment ( ) [virtual]

Deletes several resources owned by the CCoeEnv object.

This includes; the app UI, the system graphics context, and the active object which receives redraw events. It also closes the window group, the connection to the window server, and the connection to the file server.

The function is called from ExecuteD() when the active scheduler's wait loop terminates.

DestroyEnvironmentEnd()

IMPORT_C void DestroyEnvironmentEnd ( ) [protected]

DestroyEnvironmentStatic()

IMPORT_C void DestroyEnvironmentStatic ( ) [protected]

DestroyScreen()

IMPORT_C void DestroyScreen ( ) [protected, virtual]

Destroys the screen device.

By default this function simply deletes the screen device owned by this CCoeEnv . However, this function may be overridden by subclasses.

This function is called by DestroyEnvironment() .

DisableExitChecks(TBool)

IMPORT_C void DisableExitChecks ( TBool aDisable )

Disables exit checks on kernel resources. Affects debug builds only.

CCoeEnv checks for kernel resources on exit (e.g. open file handles). These checks may be too strict for some applications, such as a web browser, so this function is provided to disable them.

CCoeEnv also checks on heap allocation and window server resources on exit.

Parameters

TBool aDisable True to disable resource checking, false to enable it.

DisableShutdownChecks()

IMPORT_C TBool DisableShutdownChecks ( ) const

DoCancel()

IMPORT_C void DoCancel ( ) [virtual]

Implements cancellation of an outstanding request.

This function is called as part of the active object's Cancel() .

It must call the appropriate cancel function offered by the active object's asynchronous service provider. The asynchronous service provider's cancel is expected to act immediately.

DoCancel() must not wait for event completion; this is handled by Cancel() .

CActive::Cancel

DoFlush()

void DoFlush ( )

Flush WSERV's command buffer

DoResourceFileForIdL(TInt)

RResourceFile * DoResourceFileForIdL ( TInt aResourceId ) const [private]

Parameters

TInt aResourceId

EnsureCorrectFepIsLoadedL()

void EnsureCorrectFepIsLoadedL ( )

EnsureSpecifiedFepIsLoadedL(TUid)

void EnsureSpecifiedFepIsLoadedL ( TUid aFepUid )

Parameters

TUid aFepUid

ErrorContextText()

TDes & ErrorContextText ( ) [protected, inline]

Gets the current error context text.

ErrorText()

TDes & ErrorText ( ) [protected, inline]

Gets the current error message text.

Execute()

IMPORT_C void Execute ( )

Launches the application without destroying the control environment.

This function starts the active scheduler owned by the CCoeEnv , enabling the application to start receiving events from the window server. It forms the outer loop of all Control Environment applications.

ExecuteD()

IMPORT_C void ExecuteD ( )

Launches the application and destroys the control environment.

ExecuteFepSettingsDialogL(TUid)

IMPORT_C void ExecuteFepSettingsDialogL ( TUid aFepUid )

Executes the settings dialog for the specified secure FEP.

The specified FEP does not need to be loaded.

Parameters

TUid aFepUid The UID of the secure FEP for which the settings dialog is to be executed.

Fep()

IMPORT_C CCoeFep * Fep ( ) const

Gets a pointer to the currently loaded FEP.

FepUid()

IMPORT_C TUid FepUid ( ) const

Gets the UID of the currently loaded FEP.

FindStatic(TUid)

IMPORT_C CCoeStatic * FindStatic ( TUid aUid )

Parameters

TUid aUid

Flush(TTimeIntervalMicroSeconds32)

IMPORT_C void Flush ( TTimeIntervalMicroSeconds32 aDelay = 0 )

Flushes the client-side window server buffer.

The function does this by first calling RWsSession::Flush() , and then User::After(aDelay), which puts the current process in a sleep state for the time interval given by aDelay.

Parameters

TTimeIntervalMicroSeconds32 aDelay = 0 Delay for which to sleep the current process after flushing the window server buffer. By default the delay is zero.

FocusObserverNotificationIdentifier()

TInt FocusObserverNotificationIdentifier ( ) const

FocusObserverNotificationIsStillPending(TInt)

TBool FocusObserverNotificationIsStillPending ( TInt aFocusObserverNotificationIdentifier ) const

Parameters

TInt aFocusObserverNotificationIdentifier

ForEachFepObserverCall(TCoeFepObserverFunction)

IMPORT_C void ForEachFepObserverCall ( TCoeFepObserverFunction aFepObserverFunction )

Calls the specified function for each FEP observer.

This function is called for each MCoeFepObserver object that has been registered. FEP observers are registered by calling CCoeEnv::AddFepObserverL() .

Parameters

TCoeFepObserverFunction aFepObserverFunction The function to be called.

Format128(TDes &, TInt, ...)

IMPORT_C void Format128 ( TDes & aDes,
TInt aResourceId,
...
)

Reads a 128 byte resource into a formatted string.

The format of the string is given by the variable argument list. The unformatted resource data must not be longer than 128 bytes. If it is, you should use Format256() instead.

Parameters

TDes & aDes On return, contains the formatted resource data.
TInt aResourceId The numeric ID of the resource to be read.
...

Format256(TDes &, TInt, ...)

IMPORT_C void Format256 ( TDes & aDes,
TInt aResourceId,
...
)

Reads a 256 byte resource into a formatted string.

The format of the string is given by the variable argument list. The unformatted resource data must not be longer than 256 bytes.

Parameters

TDes & aDes On return, contains the formatted resource data.
TInt aResourceId The numeric ID of the resource to be read.
...

FsSession()

RFs & FsSession ( ) const [inline]

Gets the file server session owned by this CCoeEnv .

This session is normally only used for accessing the application's resource file.

GetMessageNotifyingObserversLC(TUint32, TUid &, TPtr8 &, const TWsEvent &)

IMPORT_C void GetMessageNotifyingObserversLC ( TUint32 aClientHandleOfTargetWindowGroup,
TUid & aMessageUid,
TPtr8 & aMessageParameters,
const TWsEvent & aMessageEvent
)

Parameters

TUint32 aClientHandleOfTargetWindowGroup
TUid & aMessageUid
TPtr8 & aMessageParameters
const TWsEvent & aMessageEvent

HandleError(TInt)

IMPORT_C void HandleError ( TInt aError ) [virtual]

Handles an application-defined error message.

This function allows application-defined error messages to be called from functions within the control framework's active scheduler. It has an empty default implementation.

It is called when a leave occurs in CCoeEnv::RunL() , and also when ReadResource() fails.

Parameters

TInt aError

InitRootWindowL(TBool, TInt)

void InitRootWindowL ( TBool aInitialFocusState,
TInt aWindowGroupID = 0
) [private]

Parameters

TBool aInitialFocusState
TInt aWindowGroupID = 0

InitScreenL(TInt)

void InitScreenL ( TInt aDefaultScreenNumber ) [private]

Parameters

TInt aDefaultScreenNumber

InitSystemFontsL()

IMPORT_C void InitSystemFontsL ( ) [private, virtual]

Initialises the system fonts.

This function is called by ConstructL() during the construction of a CCoeEnv . The default implementation creates only the normal control environment font, but this function may be overridden to create other fonts.

InitSystemGcL()

void InitSystemGcL ( ) [private]

InitViewServerSessionL(MVwsSessionWrapperObserver &)

CVwsSessionWrapper * InitViewServerSessionL ( MVwsSessionWrapperObserver & aObserver )

Parameters

MVwsSessionWrapperObserver & aObserver

InitialHandleCount()

TUint InitialHandleCount ( ) const [private, inline]

InputCapabilitiesChanged()

IMPORT_C void InputCapabilitiesChanged ( )

Notifies all focus observers (FEPs) that a change has been made to the input capabilities of the focused control.

InstallFepL(TUid)

IMPORT_C void InstallFepL ( TUid aFepUid )

Loads the specified secure FEP into all running applications.

The currently loaded FEP, if any, is unloaded.

capability
WriteDeviceData To protect against installation of insecure FEP.

Parameters

TUid aFepUid The UID of the secure FEP to be loaded.

InstallFepL(TUid, const TBool)

IMPORT_C void InstallFepL ( TUid aFepUid,
const TBool aLeave
)

Loads the specified secure FEP into all running applications.

The currently loaded FEP, if any, is unloaded.

capability
WriteDeviceData To protect against installation of insecure FEP.

Parameters

TUid aFepUid The UID of the secure FEP to be loaded.
const TBool aLeave No longer used.

IsRedrawEventPending()

IMPORT_C TBool IsRedrawEventPending ( ) const

Tests if there is a redraw event waiting to be processed.

IsResourceAvailableL(TInt)

IMPORT_C TBool IsResourceAvailableL ( TInt aResourceId ) const
Checks if the given resource is owned by one of the resource files in the list maintained by CCoeEnv .
Since
9.0

Parameters

TInt aResourceId The ID of the resource.

IsSchedulerRunning()

TBool IsSchedulerRunning ( ) const [inline]

IsWservEventPending()

IMPORT_C TBool IsWservEventPending ( ) const

Tests if there is a standard event waiting to be processed.

Note: standard events are all window server events except redraw and priority key events.

LastEvent()

const TWsEvent & LastEvent ( ) const [inline]

Gets the most recent standard event that was received by the application.

Note: standard events are all events except redraw events and priority key events.

LeaveWithErrorText(const TDesC &, const TDesC *)

IMPORT_C void LeaveWithErrorText ( const TDesC & aMsg,
const TDesC * aContextText = NULL
)

Triggers a dialog which will display the error message

Parameters

const TDesC & aMsg The error message.
const TDesC * aContextText = NULL The error context text.

MopSupplyObject(TTypeUid)

IMPORT_C TTypeUid::Ptr MopSupplyObject ( TTypeUid aId ) [protected]

Retrieves an object of the same type as that encapsulated in aId.

This function is used to allow to ask owners for access to other objects that they own.

Other than in the case where NULL is returned, the object returned must be of the same object type - that is, the ETypeId member of the object pointed to by the pointer returned by this function must be equal to the iUid member of aId.

Parameters

TTypeUid aId An encapsulated object type ID.

NormalFont()

const CFont * NormalFont ( ) const [inline]

Gets the normal environment font.

This is the font created during construction of the control environment.

InitSystemFontsL()

NotifyFocusObserversOfDestructionOfFocusedItem()

void NotifyFocusObserversOfDestructionOfFocusedItem ( )

NotifyForegroundObserversOfGainingForeground()

void NotifyForegroundObserversOfGainingForeground ( )

NotifyForegroundObserversOfLosingForeground()

void NotifyForegroundObserversOfLosingForeground ( )

NotifyMessageMonitorObserversOfEvent(const TWsEvent &)

void NotifyMessageMonitorObserversOfEvent ( const TWsEvent & aEvent )

Parameters

const TWsEvent & aEvent

NotifyResourceObserversOfChangeInResource()

void NotifyResourceObserversOfChangeInResource ( )

PopulateArrayOfScreenItemsL()

void PopulateArrayOfScreenItemsL ( ) [private]

This function initializes an array of TScreenItems. Each SScreenItem object contains a pointer to a screen device and a window group The first entry in this array points to the default screen device and window group. The default screen device is the primary screen device in the system.

PrepareToExit()

IMPORT_C void PrepareToExit ( )

Prepares for exiting the application.

The function is called from ExecuteD() after the active scheduler's wait loop terminates, but before the environment is destroyed.

QueueNotificationToFocusObserversOfChangeInFocus()

void QueueNotificationToFocusObserversOfChangeInFocus ( )

ReadDesC16ArrayResourceL(TInt)

IMPORT_C CDesC16ArrayFlat * ReadDesC16ArrayResourceL ( TInt aResourceId )

Reads a resource into a 16 bit descriptor array.

Ownership of the array is transferred to the caller.

TResourceReader::ReadDesC16ArrayL()

Parameters

TInt aResourceId The numeric ID of the resource to be read.

ReadDesC8ArrayResourceL(TInt)

IMPORT_C CDesC8ArrayFlat * ReadDesC8ArrayResourceL ( TInt aResourceId )

Reads a resource into an 8 bit descriptor array.

TResourceReader::ReadDesC8ArrayL()

Parameters

TInt aResourceId The numeric ID of the resource to be read.

ReadDesCArrayResourceL(TInt)

CDesCArrayFlat * ReadDesCArrayResourceL ( TInt aResourceId ) [inline]

Reads a resource into a Unicode descriptor array.

TResourceReader::ReadDesCArrayL()

Parameters

TInt aResourceId The numeric ID of the resource to be read.

ReadResource(TDes &, TInt)

void ReadResource ( TDes & aDes,
TInt aResourceId
) const [inline]

Reads a resource into a descriptor.

The descriptor must be long enough to contain the entire resource. No memory is allocated by this function. If the read fails, the function sets an error condition and performs any cleanup required. The error condition causes the GUI to launch an alert window.

Deprecated - Use CCoeEnv::ReadResourceL() instead.

RResourceFile::ReadL() KErrCoeFailedToReadFromProgDisk

Parameters

TDes & aDes On return, contains the resource data.
TInt aResourceId The numeric ID of the resource to be read.

ReadResourceAsDes16(TDes16 &, TInt)

IMPORT_C void ReadResourceAsDes16 ( TDes16 & aDes,
TInt aResourceId
) const

Reads a resource into a 16 bit descriptor.

The descriptor must be long enough to contain the entire resource. No memory is allocated by this function.

If the read fails the function sets an error condition and performs any cleanup required. The error condition causes the GUI to launch an alert window. Deprecated: use CCoeEnv::ReadResourceAsDes16L() instead.

RResourceFile::ReadL() KErrCoeFailedToReadFromProgDisk

Parameters

TDes16 & aDes On return, contains the read resource.
TInt aResourceId The numeric ID of the resource to be read.

ReadResourceAsDes16L(TDes16 &, TInt)

IMPORT_C void ReadResourceAsDes16L ( TDes16 & aDes,
TInt aResourceId
) const

7.0

Reads a resource into a 16 bit descriptor.

The descriptor must be long enough to contain the entire resource. The method leaves if an error occurs when reading from the resource file.

Parameters

TDes16 & aDes On return, contains the read resource.
TInt aResourceId The numeric ID of the resource to be read.

ReadResourceAsDes8(TDes8 &, TInt)

IMPORT_C void ReadResourceAsDes8 ( TDes8 & aDes,
TInt aResourceId
) const

Reads a resource into an 8 bit descriptor.

The descriptor must be long enough to contain the entire resource. No memory is allocated by this function.

If the read fails the function sets an error condition and performs any cleanup required. The error condition causes the GUI to launch an alert window. Deprecated: use CCoeEnv::ReadResourceAsDes8L() instead.

RResourceFile::ReadL() KErrCoeFailedToReadFromProgDisk

Parameters

TDes8 & aDes On return, contains the read resource.
TInt aResourceId The numeric ID of the resource to be read.

ReadResourceAsDes8L(TDes8 &, TInt)

IMPORT_C void ReadResourceAsDes8L ( TDes8 & aDes,
TInt aResourceId
) const

7.0

Reads a resource into an 8 bit descriptor.

The descriptor must be long enough to contain the entire resource. The method leaves if an error occurs when reading from the resource file.

Parameters

TDes8 & aDes On return, contains the read resource.
TInt aResourceId The numeric ID of the resource to be read.

ReadResourceL(TDes &, TInt)

void ReadResourceL ( TDes & aDes,
TInt aResourceId
) const [inline]

Reads a resource into a descriptor.

The descriptor must be long enough to contain the entire resource. No memory is allocated by this function.

Parameters

TDes & aDes On return, contains the resource data.
TInt aResourceId The numeric ID of the resource to be read.

RefetchPixelMappingL()

void RefetchPixelMappingL ( )

ReleaseScreenFont(CFont *)

IMPORT_C void ReleaseScreenFont ( CFont * aFont ) const

Frees all resources used by the font.

This function should be used to release a font when the font is no longer required. Fonts are created using CreateScreenFontL() .

Parameters

CFont * aFont The font to be released.

RemoveFepObserver(MCoeFepObserver &)

IMPORT_C void RemoveFepObserver ( MCoeFepObserver & aFepObserver )

Removes the specified FEP observer.

AddFepObserverL()

Parameters

MCoeFepObserver & aFepObserver The FEP observer to be removed.

RemoveFocusObserver(MCoeFocusObserver &)

IMPORT_C void RemoveFocusObserver ( MCoeFocusObserver & aFocusObserver )

Removes the specified focus observer.

AddFocusObserverL()

Parameters

MCoeFocusObserver & aFocusObserver The focus observer to be removed.

RemoveForegroundObserver(MCoeForegroundObserver &)

IMPORT_C void RemoveForegroundObserver ( MCoeForegroundObserver & aForegroundObserver )

Removes the specified foreground observer.

AddForegroundObserverL()

Parameters

MCoeForegroundObserver & aForegroundObserver The foreground observer to be removed.

RemoveMessageMonitorObserver(MCoeMessageMonitorObserver &)

IMPORT_C void RemoveMessageMonitorObserver ( MCoeMessageMonitorObserver & aMessageMonitorObserver )

Removes the specified MCoeMessageMonitorObserver .

Parameters

MCoeMessageMonitorObserver & aMessageMonitorObserver The visibility change observer to be removed.

RemoveMessageObserver(MCoeMessageObserver &)

IMPORT_C void RemoveMessageObserver ( MCoeMessageObserver & aMessageObserver )

Removes the specified MCoeMessageObserver from the message observer list.

AddMessageObserverL()

Parameters

MCoeMessageObserver & aMessageObserver The message observer to be removed from the list.

RemoveObserver(TAny *, RGenericPointerArray &)

void RemoveObserver ( TAny * aObserver,
RGenericPointerArray & aArray
) [private]

Parameters

TAny * aObserver
RGenericPointerArray & aArray

RemoveObserverOfLoadedFep(MCoeObserverOfLoadedFep &)

IMPORT_C void RemoveObserverOfLoadedFep ( MCoeObserverOfLoadedFep & aObserverOfLoadedFep )

Removes the specified loaded FEP observer.

Parameters

MCoeObserverOfLoadedFep & aObserverOfLoadedFep The FEP observer to be removed.

RemoveResourceChangeObserver(MCoeResourceChangeObserver &)

IMPORT_C void RemoveResourceChangeObserver ( MCoeResourceChangeObserver & aResourceChangeObserver )

Removes the specified resource change observer.

Parameters

MCoeResourceChangeObserver & aResourceChangeObserver The resource change observer to be removed.

RequestEventNotification()

void RequestEventNotification ( ) [private]

Asks WSERV to give notification when an event is waiting

Reserved_1()

IMPORT_C void Reserved_1 ( ) [private, virtual]

Reserved_2()

IMPORT_C void Reserved_2 ( ) [private, virtual]

ResourceFileForId(TInt)

RResourceFile & ResourceFileForId ( TInt aResourceId ) const [private]

Parameters

TInt aResourceId

ResourceFileVersionNumber()

IMPORT_C TInt ResourceFileVersionNumber ( ) const [private, virtual]

Gets the resource file version number.

The function is intended to be replaced in a derived class. It should return a defined constant which should correspond to the version number of resource files used by the application. It is implemented by the standard GUI framework.

AddResourceFileL() uses this function to verify that the application is not using an out of date resource file. An out of date resource file causes AddResourceFileL() to leave with error code KErrBaflWrongResourceFileSignature.

RootWin()

RWindowGroup & RootWin ( ) const [inline]

Gets the application's window group.

Note: a window group is an invisible window which acts as the parent window for all other windows in an application. Typically, each application has one window group. In the window server, window groups are also the unit of keyboard focus.

RootWin(TInt)

IMPORT_C RWindowGroup * RootWin ( TInt aScreenNumber ) const

This function returns the window group associated with the screen device that bears this particular screen number.

Parameters

TInt aScreenNumber

RunError(TInt)

IMPORT_C TInt RunError ( TInt aError ) [private, virtual]

Parameters

TInt aError

RunL()

IMPORT_C void RunL ( ) [virtual]

Handles an active object's request completion event.

A derived class must provide an implementation to handle the completed request. If appropriate, it may issue another request.

The function is called by the active scheduler when a request completion event occurs, i.e. after the active scheduler's WaitForAnyRequest() function completes.

Before calling this active object's RunL() function, the active scheduler has:

1. decided that this is the highest priority active object with a completed request

2. marked this active object's request as complete (i.e. the request is no longer outstanding)

RunL() runs under a trap harness in the active scheduler. If it leaves, then the active scheduler calls RunError() to handle the leave.

Note that once the active scheduler's Start() function has been called, all user code is run under one of the program's active object's RunL() or RunError() functions.

CActiveScheduler::Start CActiveScheduler::Error CActiveScheduler::WaitForAnyRequest TRAPD

ScreenDevice()

CWsScreenDevice * ScreenDevice ( ) const [inline]

Gets the default screen device owned by this CCoeEnv .

This is typically used as the standard screen device for the CCoeEnv's application.

ScreenDevice(TInt)

IMPORT_C CWsScreenDevice * ScreenDevice ( TInt aScreenNumber ) const

This function returns the screen device with this particular screen number.

Parameters

TInt aScreenNumber

SetAppStartupInstrumentationEventIdBaseL(TInt)

IMPORT_C void SetAppStartupInstrumentationEventIdBaseL ( TInt aAppStartupInstrumentationEventIdBase ) [protected]

Parameters

TInt aAppStartupInstrumentationEventIdBase

SetAppUi(CCoeAppUi *)

IMPORT_C CCoeAppUi * SetAppUi ( CCoeAppUi * aAppUi )

Sets the application's user interface object.

Standard GUI applications do not need to call this function, as the framework sets the app UI, during start up, to be the CEikAppUi-derived object created by the application.

Parameters

CCoeAppUi * aAppUi The app UI for this application.

SetInitialHandleCount()

void SetInitialHandleCount ( ) [private]

SetZoomFactor(const TZoomFactor &)

IMPORT_C void SetZoomFactor ( const TZoomFactor & aZoomFactor )

Sets the zoom factor of all controls currently on the control stack.

CCoeControl::SetZoomFactor()

Parameters

const TZoomFactor & aZoomFactor

SimulateKeyEventL(const TKeyEvent &, TEventCode)

IMPORT_C void SimulateKeyEventL ( const TKeyEvent & aKeyEvent,
TEventCode aType
)

Simulates a key event.

This function calls CCoeAppUi::HandleWsEventL() to process the event as if it had arrived from the window server.

Parameters

const TKeyEvent & aKeyEvent The key event.
TEventCode aType The event type.

Static()

IMPORT_C CCoeEnv * Static ( ) [static]

Gets a pointer to a CCoeEnv which can be used to access CCoeEnv's functions.

It allows application code to access CCoeEnv's functions even where there is no direct access to a CCoeEnv object.

For example:

         CCoeEnv::Static()->CreateResourceReaderLC(aReader, aResourceId);
        

Static(TUid)

IMPORT_C CCoeStatic * Static ( TUid aUid ) [static]

Gets a pointer to the specified CCoeStatic derived class.

If no match is found it will return NULL.

This function might be used to allow a CCoeStatic derived class to get a handle on itself.

Note: ownership of the object remains with CCoeEnv in all cases.

Parameters

TUid aUid The UID of the CCoeStatic derived class.

SupportedPointers()

TInt SupportedPointers ( ) const

SuppressNextFlush()

IMPORT_C void SuppressNextFlush ( )

Suppresses the next flush of the active scheduler queue.

It prevents the active scheduler automatically flushing its window server session the next time that a non-CCoeEnv object runs. After the active object has run, the active scheduler reverts back to its normal behaviour, flushing after each non-CCoeEnv RunL() .

SwapSystemGc(CWindowGc *)

IMPORT_C CWindowGc * SwapSystemGc ( CWindowGc * aGc )

Sets the new system graphics context.

The function returns a pointer to the old system graphics context.

panic
CONE 27 aGc is NULL.

Parameters

CWindowGc * aGc The new graphics context.

SyncNotifyFocusObserversOfChangeInFocus()

IMPORT_C void SyncNotifyFocusObserversOfChangeInFocus ( )

SystemGc()

CWindowGc & SystemGc ( ) const [inline]

Gets the system graphics context.

This is the graphics context typically used for drawing controls, but an alternative graphics context can be created if required using CreateGcL() .

UpdateStatic(CCoeAppUi *)

void UpdateStatic ( CCoeAppUi * aNewAppUi ) [private]

Parameters

CCoeAppUi * aNewAppUi

Version()

IMPORT_C TVersion Version ( ) [static]

Gets the version number of the UI Control Framework API.

WsSession()

RWsSession & WsSession ( ) const [inline]

Gets the window server session owned by the application.

This provides access to window server functions not directly accessible via the UI control framework.

ZoomFactor()

IMPORT_C TZoomFactor ZoomFactor ( ) const

Returns the zoom factor last set by calling CCoeEnv::SetZoomFactor() .

Member Enumerations Documentation

Enum TFlags

Enumerators

ENoShutdownChecks = 0x0001
EExtraPointerIsErrorCode = 0x0002
ESchedulerIsRunning = 0x0004

Member Data Documentation

CCoeAppUi * iAppUi

CCoeAppUi * iAppUi [protected]

CTrapCleanup * iCleanup

CTrapCleanup * iCleanup [private]

TUint iEnvFlags

TUint iEnvFlags [private]

TDes * iErrorContextText

TDes * iErrorContextText [private]

TDes * iErrorText

TDes * iErrorText [private]

CCoeEnvExtra * iExtra

CCoeEnvExtra * iExtra [private]

RFs iFsSession

RFs iFsSession [protected]

TWsEvent iLastEvent

TWsEvent iLastEvent [protected]

const CFont * iNormalFont

const CFont * iNormalFont [protected]

CArrayFix< RResourceFile > * iResourceFileArray

CArrayFix < RResourceFile > * iResourceFileArray [protected]

RWindowGroup iRootWin

RWindowGroup iRootWin [protected]

CWsScreenDevice * iScreen

CWsScreenDevice * iScreen [protected]

CWindowGc * iSystemGc

CWindowGc * iSystemGc [protected]

RWsSession iWsSession

RWsSession iWsSession [protected]