| 
                   | 
               
                  
                   | 
            |
Each application uses a window server session to communicate with the window server. Through the session, the application may control and interrogate
its own windows
which events it wishes to receive
all other window groups connected to the window server
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