dbus example added

This commit is contained in:
Kolan Sh 2013-03-28 17:50:16 +04:00
parent c3d3d0efc7
commit acfa130e92
3 changed files with 67 additions and 3 deletions

View File

@ -0,0 +1,12 @@
#!/bin/sh
dbus-send --type=method_call \
--dest=org.example.DemoService \
/org/example/demo \
org.example.DemoService.SomeMethod
dbus-send --type=method_call \
--dest=org.example.DemoService \
/org/example/demo \
org.example.DemoService.SomeMethodSender \
string:'hello world'

View File

@ -0,0 +1,54 @@
[DBus(name = "org.example.DemoService")]
public class DemoService : Object {
/* Private field, not exported via D-Bus */
int counter;
/* Public field, not exported via D-Bus */
public int status;
/* Public property, exported via D-Bus */
public int something { get; set; }
/* Public signal, exported via D-Bus
* Can be emitted on the server side and can be connected to on the client side.
*/
public signal void sig1();
/* Public method, exported via D-Bus */
public void some_method() {
counter++;
stdout.printf("heureka! counter = %d\n", counter);
sig1(); // emit signal
}
/* Public method, exported via D-Bus and showing the sender who is
is calling the method (not exported in the D-Bus inteface) */
public void some_method_sender(string message, GLib.BusName sender) {
counter++;
stdout.printf("heureka! counter = %d, '%s' message from sender %s\n",
counter, message, sender);
}
}
void on_bus_aquired (DBusConnection conn) {
try {
// start service and register it as dbus object
var service = new DemoService();
conn.register_object ("/org/example/demo", service);
} catch (IOError e) {
stderr.printf ("Could not register service: %s\n", e.message);
}
}
void main () {
// try to register service name in session bus
Bus.own_name (BusType.SESSION, "org.example.DemoService", /* name to register */
BusNameOwnerFlags.NONE, /* flags */
on_bus_aquired, /* callback function on registration succeded */
() => {}, /* callback on name register succeded */
() => stderr.printf ("Could not aquire name\n"));
/* callback on name lost */
// start main loop
new MainLoop ().run ();
}

View File

@ -1,10 +1,8 @@
#!/bin/sh
# valac --thread --target-glib=2.32 threading-sample.vala \
valac --thread threads.vala
valac --thread --target-glib=2.32 threads-2.32.vala
valac --thread philosophers.vala
valac --thread async-queue-test.vala
valac --pkg gio-2.0 dbus-demo-service.vala