Skip to content
vhc edited this page Oct 22, 2010 · 1 revision

Qt Embedded relies on the host OS to provide these basic functionalities. We just need to implement these mechanisms on top of our channels in Tessellation.

  1. Shared Memory and Semaphores

    • Relevant files: qsharedmemory_p.cpp, qlock_qws.cpp, qwslock.cpp

    • Needed to share window regions between client and server and run multiple applications

    • Currently, the Linux implementation uses shared memory (System V) and semaphores (for sync-ing)

    • In Tessellation, we have shared memory (?) and channels; these are appropriate for IPC.

  2. Inter-Application Communication

    • Relevant file: qwssocket_qws.cpp

    • Needed to communicate between applications (clients) and to run multiple applications.

    • Linux implementation uses Unix-domain sockets.

    • In Tessellation, we have channels.

  3. Screen Management

    • Relevant file: qscreen_qws.cpp

    • Qt/Embedded convention: + Clients render their widgets to memory + Server display contents in that memory to screen

    • Screen driver (framebuffer) is needed. + It needs a pointer to memory-mapped framebuffer and info about width, height, bit depth

    • We currently don’t have this in Tessellation.

  4. Optional Sound Management

    • Relevant file: soundqss_qws.cpp

  5. Event Dispatching

    • Relevant file: qeventdispatcher_qws.cpp

    • Needed to multiplex events on the server side.

    • In Linux, select()/poll() would suffice.

    • In Tessellation, our main communication mechanism is channels. This implies we need a mechanism to multiplex channels in the application. We would have to do this sooner or later for our GUI service cell anyways.

Clone this wiki locally