Detta är ett uppsatsförslag hämtat från Nationella Exjobb-poolen. Klicka här för att komma tillbaka till samtliga exjobbsförslag.
Code generation and software framework for an embedded X11 server
The X11 window system is based on a client/server model where the client application and the X11 server are different processes, possibly running on different machines. Requests, responses, events and errors are serialized and sent as binary messages on a bi-directional connection (TCP or Unix domain socket).
The reference X11 server implementation is Xorg (www.X.org). However, this implementation has not been fully optimized for embedded environments where code size must be minimized. In addition it is implemented in C rather than C++ and the code is difficult to maintain or modify.
The core protocol and the most important extensions together consists of 100+ requests. It is obviously time-consuming and error-prone to manually implement support for all of these messages. Recently however the protocols have been formalized using XML (http://xcb.freedesktop.org/wiki/XmlXcb). It should be possible to automatically generate much of the server-side code from these descriptions.
The purpose of this project is to design and implement a code generator that reads the XML protocol descriptions and generates C++ classes with type-safe methods for each request. In addition a framework should be implemented to handle protocol extensions, client connection management and setup as well as event and error reporting. It should be possible to link the generated code with the framework classes to get a working proof-of-concept.
It is not expected that this project will actually implement all the various requests related to window management and rendering or any graphics and input drivers.
A code generator
A C++ X11 server framework
A report describing the design decisions
Documentation of the software
X11 (basic knowledge recommended)
Please send you application to [email protected] For further questions, please contact Henrik at 013-36 76 78.
Informationen om uppsatsförslag är hämtad från Nationella Exjobb-poolen.