help-gnu-emacs
[Top][All Lists]
Advanced

[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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]