summaryrefslogtreecommitdiff
path: root/x11/ipc/DESIGN
blob: fbe121b504bfde1a293842d431076d090123f078 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
This is the design of our Opie PDA Communication 
Protocol
It's main purpose is to be src compatible with QCOP
from TT and Qtopia. It's main target is to be used 
as a QCOP replacement for the X11 Windowing System.

We heavily use unix domain sockets for the internal 
communication.
We've one socket in $HOME/.opie.cop which is the
server socket. We will communicate with the use
of QDataStream and QByteArray.
Internally QByteArries will be copied from the client
to the server

A package is looking similiar to this one

int packet_type; // Register, Unregister, Call, Method, Reply, RegisterChannel, UnregisterChannel
QString channel;
QString header
QByteArray packet

Server PART:
We keep the fds together with a list of Channels
QMap<QString,QValueList<int>> int is the fd and QString is the channel
name
this makes the isRegistered stuff more easy to manage


Client:
RPC is currently not enabled but will be available in future versions
I do not want to add it otherwise I'll stick too tight
to this implementation.
We currently only support send and forget
isRegistered will be taken care of the client side. We can not
use the X WindowSystem for that


I hope this helps... be sure to look at the code
I try to comment it
and now go to the hacking ;)

-zecke 30.09.02