SUBDIRS = po
-bin_PROGRAMS = src/moonshot
+bin_PROGRAMS = src/moonshot src/dbus-client
AM_CPPFLAGS = \
AM_VALAFLAGS = \
config.vapi \
- --pkg gtk+-2.0
+ --pkg gtk+-2.0 --pkg dbus-glib-1
src_moonshot_SOURCES = \
src/moonshot-id.vala \
src/moonshot-idcard-widget.vala \
src/moonshot-custom-vbox.vala \
src/moonshot-identities-manager.vala \
+ src/moonshot-dbus-server.vala \
src/moonshot-window.vala
+src_dbus_client_SOURCES = \
+ src/dbus-client.vala
+
src_moonshot_LDADD = \
$(moonshot_LIBS)
+
+src_dbus_client_LDADD = \
+ $(moonshot_LIBS)
glib-2.0 >= 2.24
gobject-2.0 >= 2.24
gtk+-2.0 >= 2.20
+ dbus-glib-1
])
# i18n stuff
--- /dev/null
+[DBus (name = "org.janet.Moonshot")]
+interface Moonshot : Object {
+ public abstract int ping (string msg) throws DBus.Error;
+ public abstract string[] get_identity (string identity, string username, string password) throws DBus.Error;
+}
+
+void main () {
+ try {
+ var conn = DBus.Bus.get (DBus.BusType.SESSION);
+ var demo = (Moonshot) conn.get_object ("org.janet.Moonshot",
+ "/org/janet/moonshot");
+
+ int pong = demo.ping ("Hello from Vala");
+ stdout.printf ("%d\n", pong);
+
+ var text = demo.get_identity ("identity", "username", "pass");
+ stdout.printf ("%s %s %s\n", text[0], text[1], text[2]);
+
+ } catch (DBus.Error e) {
+ stderr.printf ("%s\n", e.message);
+ }
+}
--- /dev/null
+[DBus (name = "org.janet.Moonshot")]
+public class MoonshotServer : Object {
+ private int counter;
+
+ public int ping (string msg)
+ {
+ stdout.printf ("%s\n", msg);
+ return counter++;
+ }
+
+ public string[] get_identity (string identity,
+ string password,
+ string service)
+ {
+ string[3] information = {"identity", "password", "certificate"};
+
+ return information;
+ }
+}
private IdentitiesManager identities_manager;
+ private MoonshotServer dbus_server;
+
private enum Columns
{
IDCARD_COL,
load_gss_eap_id_file();
//load_id_cards();
connect_signals();
+ init_dbus_server();
}
private bool visible_func (TreeModel model, TreeIter iter)
this.destroy.connect (Gtk.main_quit);
}
+ private void init_dbus_server ()
+ {
+ try {
+ var conn = DBus.Bus.get (DBus.BusType.SESSION);
+ dynamic DBus.Object bus = conn.get_object ("org.freedesktop.DBus",
+ "/org/freedesktop/DBus",
+ "org.freedesktop.DBus");
+
+ // try to register service in session bus
+ uint reply = bus.request_name ("org.janet.Moonshot", (uint) 0);
+ assert (reply == DBus.RequestNameReply.PRIMARY_OWNER);
+
+ this.dbus_server = new MoonshotServer ();
+ conn.register_object ("/org/janet/moonshot", dbus_server);
+
+ }
+ catch (DBus.Error e)
+ {
+ stderr.printf ("%s\n", e.message);
+ }
+ }
+
public static int main(string[] args)
{
Gtk.init(ref args);