xref: /aosp_15_r20/external/libwebsockets/minimal-examples/dbus-server/minimal-dbus-server/README.md (revision 1c60b9aca93fdbc9b5f19b2d2194c91294b22281)
1*1c60b9acSAndroid Build Coastguard Worker# lws minimal dbus server
2*1c60b9acSAndroid Build Coastguard Worker
3*1c60b9acSAndroid Build Coastguard Worker## build
4*1c60b9acSAndroid Build Coastguard Worker
5*1c60b9acSAndroid Build Coastguard WorkerUsing libdbus requires additional non-default include paths setting, same as
6*1c60b9acSAndroid Build Coastguard Workeris necessary for lws build described in ./lib/roles/dbus/README.md
7*1c60b9acSAndroid Build Coastguard Worker
8*1c60b9acSAndroid Build Coastguard WorkerCMake can guess one path and the library name usually, see the README above
9*1c60b9acSAndroid Build Coastguard Workerfor details of how to override for custom libdbus and cross build.
10*1c60b9acSAndroid Build Coastguard Worker
11*1c60b9acSAndroid Build Coastguard WorkerFedora example:
12*1c60b9acSAndroid Build Coastguard Worker```
13*1c60b9acSAndroid Build Coastguard Worker$ cmake .. -DLWS_DBUS_INCLUDE2="/usr/lib64/dbus-1.0/include"
14*1c60b9acSAndroid Build Coastguard Worker$ make
15*1c60b9acSAndroid Build Coastguard Worker```
16*1c60b9acSAndroid Build Coastguard Worker
17*1c60b9acSAndroid Build Coastguard WorkerUbuntu example:
18*1c60b9acSAndroid Build Coastguard Worker```
19*1c60b9acSAndroid Build Coastguard Worker$ cmake .. -DLWS_DBUS_INCLUDE2="/usr/lib/x86_64-linux-gnu/dbus-1.0/include"
20*1c60b9acSAndroid Build Coastguard Worker$ make
21*1c60b9acSAndroid Build Coastguard Worker```
22*1c60b9acSAndroid Build Coastguard Worker
23*1c60b9acSAndroid Build Coastguard Worker## usage
24*1c60b9acSAndroid Build Coastguard Worker
25*1c60b9acSAndroid Build Coastguard WorkerCommandline option|Meaning
26*1c60b9acSAndroid Build Coastguard Worker---|---
27*1c60b9acSAndroid Build Coastguard Worker-d <loglevel>|Debug verbosity in decimal, eg, -d15
28*1c60b9acSAndroid Build Coastguard Worker--session | Bind to session bus instead of creating private abstract unix socket
29*1c60b9acSAndroid Build Coastguard Worker
30*1c60b9acSAndroid Build Coastguard WorkerBy default the minimal server listens using its own abstract unix socket
31*1c60b9acSAndroid Build Coastguard Workerat `unix:abstract=org.libwebsockets.test`.
32*1c60b9acSAndroid Build Coastguard Worker
33*1c60b9acSAndroid Build Coastguard WorkerYou can also run it instead as a participant on the session bus, without its own
34*1c60b9acSAndroid Build Coastguard Workerunix socket, by giving `--session`.
35*1c60b9acSAndroid Build Coastguard Worker
36*1c60b9acSAndroid Build Coastguard Worker### Examples using the default private abstract unix socket
37*1c60b9acSAndroid Build Coastguard Worker
38*1c60b9acSAndroid Build Coastguard Worker```
39*1c60b9acSAndroid Build Coastguard Worker $ ./lws-minimal-dbus-server
40*1c60b9acSAndroid Build Coastguard Worker[2018/10/03 07:08:02:6448] USER: LWS minimal dbus server
41*1c60b9acSAndroid Build Coastguard Worker[2018/10/03 07:08:02:6693] NOTICE: Creating Vhost 'default' port 0, 1 protocols, IPv6 off
42*1c60b9acSAndroid Build Coastguard Worker...
43*1c60b9acSAndroid Build Coastguard Worker```
44*1c60b9acSAndroid Build Coastguard Worker
45*1c60b9acSAndroid Build Coastguard WorkerYou can communicate with the dbus server over its private abstract socket using, eg
46*1c60b9acSAndroid Build Coastguard Worker
47*1c60b9acSAndroid Build Coastguard Worker```
48*1c60b9acSAndroid Build Coastguard Worker$ gdbus introspect --address unix:abstract=org.libwebsockets.test --dest org.libwebsockets.test --object-path /org/libwebsockets/test
49*1c60b9acSAndroid Build Coastguard Workernode /org/example/TestObject {
50*1c60b9acSAndroid Build Coastguard Worker  interface org.freedesktop.DBus.Introspectable {
51*1c60b9acSAndroid Build Coastguard Worker    methods:
52*1c60b9acSAndroid Build Coastguard Worker      Introspect(out s data);
53*1c60b9acSAndroid Build Coastguard Worker    signals:
54*1c60b9acSAndroid Build Coastguard Worker    properties:
55*1c60b9acSAndroid Build Coastguard Worker  };
56*1c60b9acSAndroid Build Coastguard Worker  interface org.freedesktop.DBus.Properties {
57*1c60b9acSAndroid Build Coastguard Worker    methods:
58*1c60b9acSAndroid Build Coastguard Worker      Get(in  s interface,
59*1c60b9acSAndroid Build Coastguard Worker...
60*1c60b9acSAndroid Build Coastguard Worker```
61*1c60b9acSAndroid Build Coastguard Worker
62*1c60b9acSAndroid Build Coastguard Worker```
63*1c60b9acSAndroid Build Coastguard Worker$ gdbus call --address unix:abstract=org.libwebsockets.test --dest org.libwebsockets.test --object-path /org/libwebsockets/test --method org.libwebsockets.test.Echo HELLO
64*1c60b9acSAndroid Build Coastguard Worker('HELLO',)
65*1c60b9acSAndroid Build Coastguard Worker```
66*1c60b9acSAndroid Build Coastguard Worker
67*1c60b9acSAndroid Build Coastguard Worker### Examples using the DBUS session bus
68*1c60b9acSAndroid Build Coastguard Worker
69*1c60b9acSAndroid Build Coastguard Worker```
70*1c60b9acSAndroid Build Coastguard Worker $ ./lws-minimal-dbus-server --session
71*1c60b9acSAndroid Build Coastguard Worker[2018/10/03 07:08:02:6448] USER: LWS minimal dbus server
72*1c60b9acSAndroid Build Coastguard Worker[2018/10/03 07:08:02:6693] NOTICE: Creating Vhost 'default' port 0, 1 protocols, IPv6 off
73*1c60b9acSAndroid Build Coastguard Worker...
74*1c60b9acSAndroid Build Coastguard Worker```
75*1c60b9acSAndroid Build Coastguard Worker
76*1c60b9acSAndroid Build Coastguard WorkerYou can communicate with the dbus server over the session bus using, eg
77*1c60b9acSAndroid Build Coastguard Worker
78*1c60b9acSAndroid Build Coastguard Worker```
79*1c60b9acSAndroid Build Coastguard Worker$ gdbus introspect --session --dest org.libwebsockets.test --object-path /org/libwebsockets/test
80*1c60b9acSAndroid Build Coastguard Workernode /org/example/TestObject {
81*1c60b9acSAndroid Build Coastguard Worker  interface org.freedesktop.DBus.Introspectable {
82*1c60b9acSAndroid Build Coastguard Worker    methods:
83*1c60b9acSAndroid Build Coastguard Worker      Introspect(out s data);
84*1c60b9acSAndroid Build Coastguard Worker    signals:
85*1c60b9acSAndroid Build Coastguard Worker    properties:
86*1c60b9acSAndroid Build Coastguard Worker  };
87*1c60b9acSAndroid Build Coastguard Worker  interface org.freedesktop.DBus.Properties {
88*1c60b9acSAndroid Build Coastguard Worker    methods:
89*1c60b9acSAndroid Build Coastguard Worker      Get(in  s interface,
90*1c60b9acSAndroid Build Coastguard Worker...
91*1c60b9acSAndroid Build Coastguard Worker```
92*1c60b9acSAndroid Build Coastguard Worker
93*1c60b9acSAndroid Build Coastguard Worker```
94*1c60b9acSAndroid Build Coastguard Worker$ gdbus call --session --dest org.libwebsockets.test --object-path /org/libwebsockets/test --method org.libwebsockets.test.Echo HELLO
95*1c60b9acSAndroid Build Coastguard Worker('HELLO',)
96*1c60b9acSAndroid Build Coastguard Worker```
97