On 8/20/09, c_c <cchan...@yahoo.com> wrote:
>
> Hi,
>   I'm trying to write the c equivalent of the following python code (without
> the line break)
>
> 'mdbus -s org.freesmartphone.opimd /org/freesmartphone/PIM/Messages
> org.freesmartphone.PIM.Messages.Query {}'
>
>   essentially this means sending a array -> dict -> one string(key) -> one
> variant(value). In order to send a query with the key="Direction" and
> value="in" I use the following code
>
>       key = "Direction";
>       value = "in";
>       dbus_message_iter_init_append(msg, &iter);
>       dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY, "{sv}", 
> &array);
>       dbus_message_iter_open_container(&array, DBUS_TYPE_DICT_ENTRY, 0, 
> &dict);
>       dbus_message_iter_append_basic(&dict, DBUS_TYPE_STRING, &key);
>       dbus_message_iter_open_container(&dict, DBUS_TYPE_VARIANT,
> DBUS_TYPE_STRING_AS_STRING, &variant);
>       dbus_message_iter_append_basic(&variant, DBUS_TYPE_STRING, &value);
>       dbus_message_iter_close_container(&dict, &variant);
>       dbus_message_iter_close_container(&array, &dict);
>       dbus_message_iter_close_container(&iter, &array);
>   and it works fine.
>   But - how do I send a NULL key,value? I assume I'm sending a NULL - not
> sure if that's the way to go about it.
>   Using the code above with key and value = "" or " " causes segmentation
> fault. I'm definitely doing something wrong - but I don't know what.
>  Can anyone help?

Try just:

        dbus_message_iter_init_append(msg, &iter);
        dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY, "{sv}", 
&array);
        dbus_message_iter_close_container(&iter, &array);

(just guessing, as I didn't use dbus from C)

-- 
Sebastian Krzyszkowiak
dos

_______________________________________________
devel mailing list
devel@lists.openmoko.org
https://lists.openmoko.org/mailman/listinfo/devel

Reply via email to