[Top][All Lists]
[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.
- Re: Dbus method argument encoding problem,
Michael Albinus <=