Symbian
Symbian OS Library

SYMBIAN OS V9.3

[Index] [Spacer] [Previous] [Next]



Window server session

Each application uses a window server session to communicate with the window server. Through the session, the application may control and interrogate

The window server session provides a low-level interface for application programs use, using asynchronous services. To support an application framework, these services should be made higher-level, and the asynchronous services should be encapsulated into active objects. This function is performed by the UI control framework. The control framework is the basis for the GUI used by a particular variant of Symbian OS. Each event is then handled by the CActive::RunL() member function of an active object.

The RWsSession class represents a session from the client to the window server. Through an RWsSession, the client program controls all its own windows, issues asynchronous requests for up to three types of event, and may in addition control certain system-wide window server behaviour.

The RWsSession is a client-server session derived from RSessionBase. In a typical application, an RWsSession will own a single window group, but the window server architecture allows more than one window group per session. An application will own several windows. See Window Groups and applications.

The window server session delivers events to the application via three event streams. A typical application handles each stream using an active object. See Window Server events.

The application draws to its windows using a CWindowGc. Draw functions are buffered in a client-side buffer in order to minimise client/server context switches: this buffer is flushed in certain circumstances by the window server and may also be flushed explicitly by the application. The Flush() and SetAutoFlush() functions are part of the RWsSession API: the RWsBuffer is privately owned by an RWsSession and is not as such part of the API. See Client-side buffer


See also

Active objects