diff options
Diffstat (limited to 'libmm-glib/mm-sms-properties.c')
-rw-r--r-- | libmm-glib/mm-sms-properties.c | 285 |
1 files changed, 222 insertions, 63 deletions
diff --git a/libmm-glib/mm-sms-properties.c b/libmm-glib/mm-sms-properties.c index 3d619220..f946ad07 100644 --- a/libmm-glib/mm-sms-properties.c +++ b/libmm-glib/mm-sms-properties.c @@ -21,6 +21,18 @@ #include "mm-common-helpers.h" #include "mm-sms-properties.h" +/** + * SECTION: mm-sms-properties + * @title: MMSmsProperties + * @short_description: Helper object to handle SMS properties. + * + * The #MMSmsProperties is an object handling the properties to be set + * in newly created SMS objects. + * + * This object is created by the user and passed to ModemManager with either + * mm_modem_messaging_create() or mm_modem_messaging_create_sync(). + */ + G_DEFINE_TYPE (MMSmsProperties, mm_sms_properties, G_TYPE_OBJECT); #define PROPERTY_TEXT "text" @@ -46,6 +58,13 @@ struct _MMSmsPropertiesPrivate { /*****************************************************************************/ +/** + * mm_sms_properties_set_text: + * @self: A #MMSmsProperties. + * @text: The text to set, in UTF-8. + * + * Sets the message text. + */ void mm_sms_properties_set_text (MMSmsProperties *self, const gchar *text) @@ -56,6 +75,32 @@ mm_sms_properties_set_text (MMSmsProperties *self, self->priv->text = g_strdup (text); } +/** + * mm_sms_properties_get_text: + * @self: A #MMSmsProperties. + * + * Gets the message text, in UTF-8. + * + * Returns: (transfer none): The message text, or %NULL if it doesn't contain any (e.g. contains data instead). Do not free the returned value, it is owned by @self. + */ +const gchar * +mm_sms_properties_get_text (MMSmsProperties *self) +{ + g_return_val_if_fail (MM_IS_SMS_PROPERTIES (self), NULL); + + return self->priv->text; +} + +/*****************************************************************************/ + +/** + * mm_sms_properties_set_data: + * @self: A #MMSmsProperties. + * @data: The data to set. + * @data_length: Length of @data. + * + * Sets the message data. + */ void mm_sms_properties_set_data (MMSmsProperties *self, const guint8 *data, @@ -74,6 +119,13 @@ mm_sms_properties_set_data (MMSmsProperties *self, self->priv->data = NULL; } +/** + * mm_sms_properties_set_data_bytearray: + * @self: A #MMSmsProperties. + * @data: A #GByteArray with the data to set. This method takes a new reference of @data. + * + * Sets the message data. + */ void mm_sms_properties_set_data_bytearray (MMSmsProperties *self, GByteArray *data) @@ -86,66 +138,86 @@ mm_sms_properties_set_data_bytearray (MMSmsProperties *self, self->priv->data = (data ? g_byte_array_ref (data) : NULL); } -void -mm_sms_properties_set_number (MMSmsProperties *self, - const gchar *number) -{ - g_return_if_fail (MM_IS_SMS_PROPERTIES (self)); - - g_free (self->priv->number); - self->priv->number = g_strdup (number); -} - -void -mm_sms_properties_set_smsc (MMSmsProperties *self, - const gchar *smsc) +/** + * mm_sms_properties_get_data: + * @self: A #MMSmsProperties. + * @data_len: (out): Size of the output data, if any given. + * + * Gets the message data. + * + * Returns: (transfer none): The message data, or %NULL if it doesn't contain any (e.g. contains text instead). + */ +const guint8 * +mm_sms_properties_get_data (MMSmsProperties *self, + gsize *data_len) { - g_return_if_fail (MM_IS_SMS_PROPERTIES (self)); - - g_free (self->priv->smsc); - self->priv->smsc = g_strdup (smsc); -} + g_return_val_if_fail (MM_IS_SMS_PROPERTIES (self), NULL); -void -mm_sms_properties_set_validity (MMSmsProperties *self, - guint validity) -{ - g_return_if_fail (MM_IS_SMS_PROPERTIES (self)); + if (self->priv->data && data_len) + *data_len = self->priv->data->len; - self->priv->validity_set = TRUE; - self->priv->validity = validity; + return self->priv->data->data; } -void -mm_sms_properties_set_class (MMSmsProperties *self, - guint class) +/** + * mm_sms_properties_peek_data_bytearray: + * @self: A #MMSmsProperties. + * + * Gets the message data. + * + * Returns: (transfer none): A #GByteArray with the message data, or %NULL if it doesn't contain any (e.g. contains text instead). Do not free the returned value, it is owned by @self. + */ +GByteArray * +mm_sms_properties_peek_data_bytearray (MMSmsProperties *self) { - g_return_if_fail (MM_IS_SMS_PROPERTIES (self)); + g_return_val_if_fail (MM_IS_SMS_PROPERTIES (self), NULL); - self->priv->class_set = TRUE; - self->priv->class = class; + return self->priv->data; } -void -mm_sms_properties_set_delivery_report_request (MMSmsProperties *self, - gboolean request) +/** + * mm_sms_properties_get_data_bytearray: + * @self: A #MMSmsProperties. + * + * Gets the message data. + * + * Returns: (transfer none): A #GByteArray with the message data, or %NULL if it doesn't contain any (e.g. contains text instead). The returned value should be freed with g_byte_array_unref(). + */ +GByteArray * +mm_sms_properties_get_data_bytearray (MMSmsProperties *self) { - g_return_if_fail (MM_IS_SMS_PROPERTIES (self)); + g_return_val_if_fail (MM_IS_SMS_PROPERTIES (self), NULL); - self->priv->delivery_report_request_set = TRUE; - self->priv->delivery_report_request = request; + return (self->priv->data ? g_byte_array_ref (self->priv->data) : NULL); } /*****************************************************************************/ -const gchar * -mm_sms_properties_get_text (MMSmsProperties *self) +/** + * mm_sms_properties_set_number: + * @self: A #MMSmsProperties. + * @number: The number. + * + * Sets the number to which the message is addressed. + */ +void +mm_sms_properties_set_number (MMSmsProperties *self, + const gchar *number) { - g_return_val_if_fail (MM_IS_SMS_PROPERTIES (self), NULL); + g_return_if_fail (MM_IS_SMS_PROPERTIES (self)); - return self->priv->text; + g_free (self->priv->number); + self->priv->number = g_strdup (number); } +/** + * mm_sms_properties_get_number: + * @self: A #MMSmsProperties. + * + * Gets the number to which the message is addressed. + * + * Returns: (transfer none): The number, or %NULL if it couldn't be retrieved. Do not free the returned value, it is owned by @self. + */ const gchar * mm_sms_properties_get_number (MMSmsProperties *self) { @@ -154,42 +226,68 @@ mm_sms_properties_get_number (MMSmsProperties *self) return self->priv->number; } -const guint8 * -mm_sms_properties_get_data (MMSmsProperties *self, - gsize *data_len) -{ - g_return_val_if_fail (MM_IS_SMS_PROPERTIES (self), NULL); - - if (self->priv->data && data_len) - *data_len = self->priv->data->len; - - return self->priv->data->data; -} +/*****************************************************************************/ -GByteArray * -mm_sms_properties_peek_data_bytearray (MMSmsProperties *self) +/** + * mm_sms_properties_set_smsc: + * @self: A #MMSmsProperties. + * @smsc: The SMSC number. + * + * Sets the SMS service center number. + */ +void +mm_sms_properties_set_smsc (MMSmsProperties *self, + const gchar *smsc) { - g_return_val_if_fail (MM_IS_SMS_PROPERTIES (self), NULL); + g_return_if_fail (MM_IS_SMS_PROPERTIES (self)); - return self->priv->data; + g_free (self->priv->smsc); + self->priv->smsc = g_strdup (smsc); } -GByteArray * -mm_sms_properties_get_data_bytearray (MMSmsProperties *self) +/** + * mm_sms_properties_get_smsc: + * @self: A #MMSmsProperties. + * + * Gets the SMS service center number. + * + * Returns: (transfer none): The number of the SMSC, or %NULL if it couldn't be retrieved. Do not free the returned value, it is owned by @self. + */ +const gchar * +mm_sms_properties_get_smsc (MMSmsProperties *self) { g_return_val_if_fail (MM_IS_SMS_PROPERTIES (self), NULL); - return (self->priv->data ? g_byte_array_ref (self->priv->data) : NULL); + return self->priv->smsc; } -const gchar * -mm_sms_properties_get_smsc (MMSmsProperties *self) +/*****************************************************************************/ + +/** + * mm_sms_properties_set_validity: + * @self: A #MMSmsProperties. + * @validity: The validity. + * + * Sets the validity time of the SMS. + */ +void +mm_sms_properties_set_validity (MMSmsProperties *self, + guint validity) { - g_return_val_if_fail (MM_IS_SMS_PROPERTIES (self), NULL); + g_return_if_fail (MM_IS_SMS_PROPERTIES (self)); - return self->priv->smsc; + self->priv->validity_set = TRUE; + self->priv->validity = validity; } +/** + * mm_sms_properties_get_validity: + * @self: A #MMSmsProperties. + * + * Gets the validity time of the SMS. + * + * Returns: the validity time or 0 if unknown. + */ guint mm_sms_properties_get_validity (MMSmsProperties *self) { @@ -198,6 +296,33 @@ mm_sms_properties_get_validity (MMSmsProperties *self) return self->priv->validity; } +/*****************************************************************************/ + +/** + * mm_sms_properties_set_class: + * @self: A #MMSmsProperties. + * @class: The message class. + * + * Sets the 3GPP message class of the SMS. + */ +void +mm_sms_properties_set_class (MMSmsProperties *self, + guint class) +{ + g_return_if_fail (MM_IS_SMS_PROPERTIES (self)); + + self->priv->class_set = TRUE; + self->priv->class = class; +} + +/** + * mm_sms_properties_get_class: + * @self: A #MMSmsProperties. + * + * Gets the 3GPP message class of the SMS. + * + * Returns: the message class. + */ guint mm_sms_properties_get_class (MMSmsProperties *self) { @@ -206,6 +331,33 @@ mm_sms_properties_get_class (MMSmsProperties *self) return self->priv->class; } +/*****************************************************************************/ + +/** + * mm_sms_properties_set_delivery_report_request: + * @self: A #MMSmsProperties. + * @request: %TRUE if delivery report is requested, %FALSE otherwise. + * + * Sets whether delivery report is requested for the SMS. + */ +void +mm_sms_properties_set_delivery_report_request (MMSmsProperties *self, + gboolean request) +{ + g_return_if_fail (MM_IS_SMS_PROPERTIES (self)); + + self->priv->delivery_report_request_set = TRUE; + self->priv->delivery_report_request = request; +} + +/** + * mm_sms_properties_get_delivery_report_request: + * @self: A #MMSmsProperties. + * + * Checks whether delivery report is requested for the SMS. + * + * Returns: %TRUE if delivery report is requested, %FALSE otherwise. + */ gboolean mm_sms_properties_get_delivery_report_request (MMSmsProperties *self) { @@ -547,6 +699,13 @@ mm_sms_properties_dup (MMSmsProperties *orig) /*****************************************************************************/ +/** + * mm_sms_properties_new: + * + * Creates a new empty #MMSmsProperties. + * + * Returns: (transfer full): a #MMSmsProperties. The returned value should be freed with g_object_unref(). + */ MMSmsProperties * mm_sms_properties_new (void) { |