[PATCH] libmm-glib,sms: fix get|dup_data() introspection annotations
Colin Helliwell
colin.helliwell at ln-systems.com
Tue Sep 26 15:08:22 UTC 2017
> On 26 September 2017 at 14:23 Aleksander Morgado <aleksander at aleksander.es> wrote:
>
> We need to specify explicitly that the return type is an array of
>
> guint8 elements.
>
> ---
>
> Hey Colin,
>
> Could you apply this patch and see if the generated introspection support allows you to use the API? It should work as g_bytes_get_data(), i.e.:
> https://lazka.github.io/pgi-docs/#GLib-2.0/classes/Bytes.html#GLib.Bytes.get_data
>
> ---
> libmm-glib/mm-sms.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/libmm-glib/mm-sms.c b/libmm-glib/mm-sms.c
> index a49deb88..0467b6c1 100644
> --- a/libmm-glib/mm-sms.c
> +++ b/libmm-glib/mm-sms.c
> @@ -131,7 +131,7 @@ mm_sms_dup_text (MMSms *self)
> *
>
> * Gets the message data.
> *
>
> * * Returns: (transfer none): The message data, or %NULL if it doesn't contain any (e.g. contains text instead).
>
> * * Returns: (transfer none) (array length=data_len) (element-type guint8): The message data, or %NULL if it doesn't contain any (e.g. contains text instead).
> */
> const guint8 *
> mm_sms_get_data (MMSms *self,
> @@ -158,7 +158,7 @@ mm_sms_get_data (MMSms *self,
> *
>
> * Gets the message data.
> *
>
> * * Returns: (transfer full): The message data, or %NULL if it doesn't contain any (e.g. contains text instead). The returned value should be freed with g_free().
>
> * * Returns: (transfer full) (array length=data_len) (element-type guint8): The message data, or %NULL if it doesn't contain any (e.g. contains text instead). The returned value should be freed with g_free().
> */
> guint8 *
> mm_sms_dup_data (MMSms *self,
> --
> 2.14.1
Thanks Aleksander. I've tried this through a simple python console.
For a textual message:
>>> m=rcvd[0]
>>> print m.get_number(), m.get_timestamp(), '"%s"' % m.get_text()
+447767999999 170925121806+01 "1217"
>>> m.get_data()
''
>>> type(m.get_data())
<type 'str'>
>>> len(m.get_data())
0
For a 'pdu' message:
>>> m=rcvd[2]
>>> print m.get_number(), m.get_timestamp(), '"%s"' % m.get_text()
+447979999999 170925133914+01 "None"
>>> m.get_data()
'\xde\xad\xbe\xef'
>>> type(m.get_data())
<type 'str'>
>>> len(m.get_data())
4
More information about the ModemManager-devel
mailing list