[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: dbus-register-method and introspection
From: |
Michael Albinus |
Subject: |
Re: dbus-register-method and introspection |
Date: |
Sun, 21 May 2023 17:35:07 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) |
Rahguzar <rahguzar@zohomail.eu> writes:
> Hello all,
Hi Rahguzar,
> I am playing with the d-bus integration in Emacs 29.0.91. When I
> register a method with `dbus-register-method` I am unable to see what
> effect it has had. For example if I evaluate the following code in the
> node (dbus) Register Objects of the manual,
>
>
> (defun my-dbus-method-handler (filename) (if (find-file filename)
> '(:boolean t) '(:boolean nil)))
>
> (dbus-register-method :session "org.freedesktop.TextEditor"
> "/org/freedesktop/TextEditor" "org.freedesktop.TextEditor" "OpenFile"
> #'my-dbus-method-handler)
>
> and then evaluate
>
> (dbus-introspect-xml :session "org.freedesktop.TextEditor"
> "/org/freedesktop/TextEditor")
>
> I get nil. Similarly I can see the service 'org.freedesktop.TextEditor'
> in the application 'd-feet' but clicking on it doesn't show the method
> that was registered above and after a while I get a timeout error. This
> is in contrast to other services for which I can see what interfaces and
> methods they provide.
>
> Is there a simple way to expose such information for the services
> provided from inside emacs?
The dbus-introspect-* methods work over the
"org.freedesktop.DBus.Introspectable" interface. You must provide an own
implementation for this with your "org.freedesktop.TextEditor" service,
if you want to see the introspection data.
Most existing D-Bus services provide an own file with that data, see
directory /usr/share/dbus-1/interfaces (on my Fedora system, it could be
somewhere else on your system). When this interface is called, they
simply dump out the respective file.
> Thanks in advance,
> Rahguzar
Best regards, Michael.