-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathREADME
More file actions
40 lines (31 loc) · 1.4 KB
/
README
File metadata and controls
40 lines (31 loc) · 1.4 KB
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
PlayBus
=======
An interprocess message bus.
If no bus is running then a client will become the master node.
If the master node drops its connection then another client node
will become the master and all other clients will connect to this.
This bus is designed to be run on a single host using local servers.
the server mediation is handled at the kernel level by exploiting the
logic that allows only one process to listen on a named pipe.
This code will not work across distributed hosts as no master node
mediation is carried out. This could be extended by using a known
distributed mediation protocol.
Usage
=====
There is currently little documentation in the source code but you can
get an idea of how to use it by looking at the inspector util - this is
a small app that watches the "PlaybusTest" bus and allows you to sendQueries.
Building the Inspector
======================
cd utils/inspector
qmake
make
Known Issues
============
The protocol deals with raw byte arrays but each message is new line separated
therefore it is not possible to send any data with \n in it. This needs an update
in the protocol to send length byte(s) before the message.
Windows seemingly allows > 1 process to listen on a named pipe. As a result the
bus currently wont work on windows. My current idea for a workaround is to use
shared memory (which can only be created by 1 process) and then the creator starts
listening.