emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Dbus method argument encoding problem


From: Michael Albinus
Subject: Re: Dbus method argument encoding problem
Date: Sat, 03 Jul 2010 10:52:44 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux)

<address@hidden> writes:

> I have been experimenting to the pidgin chat client over dbus and have
> run into a problem with method calls. This is with emacs "23.2.50.1" (as
> taking from bzr a few weeks ago) on Linux.
>
> I want to call the PurpleBuddyGetName() method which takes a number as
> argument.
>
> If I call:
>
>     (dbus-call-method :session 
>                       "im.pidgin.purple.PurpleService"
>                       "/im/pidgin/purple/PurpleObject"
>                       "im.pidgin.purple.PurpleService" 
>                       "PurpleBuddyGetName" 
>                       4671)
>
> I get the following error:
>
>     (dbus-error "Argument 0 is specified to be of type \"int32\", but is 
> actually of type \"uint32\"")
>
> If one looks at the documentation of `dbus-call-method', I see the
> following encoding scheme for method arguments:
>
> ...
>   number    => DBUS_TYPE_UINT32
>   integer   => DBUS_TYPE_INT32
> ...
>
> I am guessing that `4671' matches `number' and thus is encoded as a
> UINT32 but pidgin/libpurple insists on it being an INT32.
>
> One thing is that the documentation should probably say "natural number"
> instead of just "number" (since all integers are conventionally also
> numbers), but how can I force a positive integer to encode as INT32?

"number" refers to the result of `numberp':

    (numberp 4671) => t

Type casting is possible by respective keywords. You shall call

    (dbus-call-method :session 
                      "im.pidgin.purple.PurpleService"
                      "/im/pidgin/purple/PurpleObject"
                      "im.pidgin.purple.PurpleService" 
                      "PurpleBuddyGetName" 
                      :int32 4671)


> ------------------------+-----------------------------------------------------
> Christian Lynbech       | christian #\@ defun #\. dk
> ------------------------+-----------------------------------------------------
> Hit the philistines three times over the head with the Elisp reference manual.
>                                         - address@hidden (Michael A. Petonic)

And continue with the dbus manual :-)

Best regards, Michael.



reply via email to

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