The following example demonstrates how to declare an active object Window Server event handling class.
Variant : ScreenPlay and non-ScreenPlay . Target audience : Application developers.
The steps are:
Provide a CActive::RunL() function to handle the completion of an asynchronous request—that is, the event being received.
Provide a CActive::DoCancel() function to implement a cancellation request.
Provide a function, here called IssueRequest() , to issue a request to the Window Server for events.
Create a TWsEvent object to store the events.
/* An active object that wraps a Window Server session.
An event being received causes RunL() to be called,
where the event is processed. */
class CExampleWsClient : public CActive
{
public:
...
// Active object protocol
void RunL ();
void DoCancel();
// Issue request to Window Server for events
IssueRequest();
private:
// Access to Window Server session
RWsSession& iWs;
// Access to screen device
CWsScreenDevice& iScreen;
// Window server general event
TWsEvent iWsEvent;
};
Once the active object has been constructed, a request can be issued. In the following code fragment, the active object provides the function IssueRequest() to invoke the encapsulated event request function. Pass the a TRequestStatus object, iStatus , to the EventReady() function to request Window Server events from the iWs Window Server session.
Use the CActive::SetActive() function, to indicate that the active object is currently active.
/* Request Window Server events */
void CExampleWsClient::IssueRequest()
{
iWs.EventReady(&iStatus;); // request an event
SetActive(); // so we're now active
}
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.