(require :dbus) (use-package :dbus) (defclass test-class () ((str :accessor test-class-string :initform nil :initarg :str)) ) (defgeneric test-class-method (obj arg)) (defmethod test-class-method ((obj test-class) (arg string)) (format *standard-output* (test-class-string obj) arg) (format nil (test-class-string obj) arg) ) (defgeneric test-class-numbers (obj arg arg2)) (defmethod test-class-numbers ((obj test-class) (arg number) (arg2 number)) (format *standard-output* (test-class-string obj) (+ arg arg2)) (format nil (test-class-string obj) (+ arg arg2)) ) (defgeneric test-class-introspect (obj)) (defmethod test-class-introspect ((obj test-class)) (format *standard-output* "Introspecting~%") (dbus::slurp-file "intro.xml") ) (defvar *inst* (make-instance 'test-class :str "Hello ~A~%")) (defvar *bus* (make-dbus-bus :session)) ;(print (dbus-bus-connection *bus*)) (dbus-bus-request-name *bus* "net.coderanger.DBusLisp") (dbus-add-callback *bus* *inst* "/" "net.coderanger.DBusLisp") (loop do (dbus-bus-pump *bus*) )