From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Michael Albinus Newsgroups: gmane.emacs.devel Subject: Re: DBus methods without name grabbing Date: Sun, 09 Jan 2011 10:42:17 +0100 Message-ID: <8739p2pg5i.fsf@gmx.de> References: <19384_1294002375_ZZh0g13mCbLkV.00_1294002364.12635.44.camel@gunhead> <87lj32kuyz.fsf@gmx.de> <7758_1294108975_ZZh0g0_f99~qx.00_1294108972.8785.33.camel@gunhead> <87zkrhf081.fsf@gmx.de> <26843_1294201050_ZZh0g3doKzQB1.00_1294201048.2508.1.camel@gunhead> <87hbdnvakj.fsf@gmx.de> <3138_1294465704_ZZh0g6t4U5Dm1.00_1294465702.2322.47.camel@gunhead> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: dough.gmane.org 1294566161 24647 80.91.229.12 (9 Jan 2011 09:42:41 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Sun, 9 Jan 2011 09:42:41 +0000 (UTC) Cc: emacs-devel@gnu.org To: Jan Moringen Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Jan 09 10:42:37 2011 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1PbrnJ-0005Pt-56 for ged-emacs-devel@m.gmane.org; Sun, 09 Jan 2011 10:42:37 +0100 Original-Received: from localhost ([127.0.0.1]:58762 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PbrnI-0003js-GT for ged-emacs-devel@m.gmane.org; Sun, 09 Jan 2011 04:42:36 -0500 Original-Received: from [140.186.70.92] (port=38853 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PbrnA-0003jn-Hj for emacs-devel@gnu.org; Sun, 09 Jan 2011 04:42:29 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Pbrn8-0003D7-T8 for emacs-devel@gnu.org; Sun, 09 Jan 2011 04:42:28 -0500 Original-Received: from mailout-de.gmx.net ([213.165.64.22]:56323 helo=mail.gmx.net) by eggs.gnu.org with smtp (Exim 4.71) (envelope-from ) id 1Pbrn8-0003Cw-H2 for emacs-devel@gnu.org; Sun, 09 Jan 2011 04:42:26 -0500 Original-Received: (qmail invoked by alias); 09 Jan 2011 09:42:25 -0000 Original-Received: from p57BBC06B.dip0.t-ipconnect.de (EHLO detlef.gmx.de) [87.187.192.107] by mail.gmx.net (mp012) with SMTP; 09 Jan 2011 10:42:25 +0100 X-Authenticated: #3708877 X-Provags-ID: V01U2FsdGVkX18PTd1FlIMPKcXbx/LOQto/p2Z2p556iKTv8dR7Ys LhQyMAKBYS6dH6 In-Reply-To: <3138_1294465704_ZZh0g6t4U5Dm1.00_1294465702.2322.47.camel@gunhead> (Jan Moringen's message of "Sat, 08 Jan 2011 06:48:21 +0100") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux) X-Y-GMX-Trusted: 0 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:134383 Archived-At: Jan Moringen writes: > Hi, Hi Jan, >> Maybe we shall rearrange the whole node a little bit. In the >> introductionary paragraph, service names could be described more >> detailed, especially their registration policies. Afterwards, >> dbus-register-service shall follow. > > Done. > >> The explanation of dont-register-service in dbus-register-method and >> dbus-register-property could be shortened, referring to the explanation >> in dbus-register-service. > > I don't see which parts of the these discussions could be shortened. FTTB, let the changes as you have proposed. This we could tune later. > I'm not sure about the integer constant and how they would be declared. > I used keywords instead. That's OK. > --- doc/misc/ChangeLog 2011-01-04 12:38:33 +0000 > +++ doc/misc/ChangeLog 2011-01-08 05:37:49 +0000 > +2011-01-08 Jan Moringen > + > + * dbus.texi (Receiving Method Calls): rearranged node to mention > + dbus-register-service and dbus-unregister-service first > + > 2011-01-04 Jan Moringen There are some conventions for ChangeLog entries: Start with capital letter, speak in active words ("Rearrange" instead of "Rearranged"), end with a period, etc. Do you intend to use different email addresses? > --- doc/misc/dbus.texi 2011-01-04 12:38:33 +0000 > +++ doc/misc/dbus.texi 2011-01-08 05:37:49 +0000 > +@defun dbus-register-service bus service &rest flags > +Register the known name @var{service} on D-Bus @var{bus}. > + > +@var{bus} is either the symbol @code{:system} or the symbol > +@code{:session}. > + > +@var{service} is the service name to be registered on the D-Bus. It > +must be a known name. > +@end defun A description of FLAGS is missing, also return values. > +@defun dbus-unregister-service bus service > +Unregister all objects from D-Bus @var{bus}, registered by Emacs for > +@var{service}. > + > +@var{bus} is either the symbol @code{:system} or the symbol > +@code{:session}. > + > +@var{service} is the D-Bus service name of the D-Bus. It must be a > +known name. Emacs releases its association to @var{service} from > +D-Bus. > +@end defun Ditto for the return values. > --- lisp/ChangeLog 2011-01-04 19:50:21 +0000 > +++ lisp/ChangeLog 2011-01-08 05:44:07 +0000 > +2011-01-08 Jan Moringen > + > + * net/dbus.el (dbus-unregister-service): translate returned > + integer into a symbol > + > + * net/dbus.el (dbus-register-property): use > + `dbus-register-service' to do the name registration > + It will be just one commit, so you can merge the entries. > --- lisp/net/dbus.el 2011-01-04 10:57:24 +0000 > +++ lisp/net/dbus.el 2011-01-08 05:44:07 +0000 > @@ -193,9 +193,14 @@ > (puthash key (delete elt value) dbus-registered-objects-table) > (remhash key dbus-registered-objects-table)))))) > dbus-registered-objects-table) > - (dbus-call-method > - bus dbus-service-dbus dbus-path-dbus dbus-interface-dbus > - "ReleaseName" service)) > + (let ((reply (dbus-call-method > + bus dbus-service-dbus dbus-path-dbus dbus-interface-dbus > + "ReleaseName" service))) > + (case reply > + (1 :released) > + (2 :non-existent) > + (3 :not-owner) > + (t reply)))) In case reply is not 1, 2 or 3, there is a problem. We shall raise a dbus-error then. > @@ -917,14 +922,18 @@ > ;; Add the handler. We use `dbus-service-emacs' as service name, in > ;; order to let unregister SERVICE despite of this default handler. > (dbus-register-method > + bus service path dbus-interface-properties "Get" > + 'dbus-property-handler nil) > + (dbus-register-method > + bus service path dbus-interface-properties "GetAll" > + 'dbus-property-handler nil) > + (dbus-register-method > + bus service path dbus-interface-properties "Set" > + 'dbus-property-handler nil) > + > + ;; Register the name SERVICE with BUS. > + (unless dont-register-service > + (dbus-register-service bus service)) I guess you mean t (or better 'dont-register) as last argument of the dbus-register-method calls. Btw, the comment can be shortened. "We use `dbus-service-emacs' ..." is not true anymore. > --- src/dbusbind.c 2011-01-04 11:11:43 +0000 > +++ src/dbusbind.c 2011-01-08 05:38:56 +0000 @@ -1835,6 +1847,114 @@ > +The function returns a keyword, indicating the result of the > +operation. The following keyword can be returned: "One of the following keywords is returned:" > + if (value == -1) > + xsignal0 (Qdbus_error); > + // "Unrecognized name request flag"); XD_SIGNAL2 (build_string ("Unrecognized name request flag"), args[i]); > + /* Request the known name from the bus. We can ignore the result, > + it is set to -1 if there is an error - kind of redundancy. */ > + dbus_error_init (&derror); > + result = dbus_bus_request_name (connection, SDATA (service), flags, > + &derror); > + if (dbus_error_is_set (&derror)) > + XD_ERROR (derror); The second sentence of the comment is not true anymore. > @@ -2028,18 +2149,9 @@ > /* Open a connection to the bus. */ > connection = xd_initialize (bus, TRUE); > > + /* Request the name. */ > + if (!(NILP(dont_register_service))) > + Fdbus_register_service (2, args); It must be if (NILP (dont_register_service)) > Kind regards, > Jan Best regards, Michael.