libmm-glib,sms: `MMSms' is now a real object

Not just a typedef of the gdbus-codegen generated `MmGdbusSms'.
This commit is contained in:
Aleksander Morgado
2012-10-02 14:06:17 +02:00
parent ba075e48f4
commit d148eb6c7d
3 changed files with 374 additions and 244 deletions

View File

@@ -275,15 +275,21 @@ mm_modem_messaging_list_finish (MMModemMessaging *self,
return g_list_copy (list);
}
static void create_next_sms (ListSmsContext *ctx);
static void
list_build_object_ready (GDBusConnection *connection,
GAsyncResult *res,
ListSmsContext *ctx)
{
MMSms *sms;
GError *error = NULL;
GObject *sms;
GObject *source_object;
source_object = g_async_result_get_source_object (res);
sms = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, &error);
g_object_unref (source_object);
sms = mm_sms_new_finish (res, &error);
if (error) {
g_simple_async_result_take_error (ctx->result, error);
list_sms_context_complete_and_free (ctx);
@@ -304,12 +310,23 @@ list_build_object_ready (GDBusConnection *connection,
}
/* Keep on creating next object */
mm_sms_new (g_dbus_proxy_get_connection (
G_DBUS_PROXY (ctx->self)),
ctx->sms_paths[ctx->i],
create_next_sms (ctx);
}
static void
create_next_sms (ListSmsContext *ctx)
{
g_async_initable_new_async (MM_TYPE_SMS,
G_PRIORITY_DEFAULT,
ctx->cancellable,
(GAsyncReadyCallback)list_build_object_ready,
ctx);
ctx,
"g-flags", G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START,
"g-name", MM_DBUS_SERVICE,
"g-connection", g_dbus_proxy_get_connection (G_DBUS_PROXY (ctx->self)),
"g-object-path", ctx->sms_paths[ctx->i],
"g-interface-name", "org.freedesktop.ModemManager1.Sms",
NULL);
}
static void
@@ -335,12 +352,7 @@ list_ready (MMModemMessaging *self,
/* Got list of paths. If at least one found, start creating objects for each */
ctx->i = 0;
mm_sms_new (g_dbus_proxy_get_connection (
G_DBUS_PROXY (self)),
ctx->sms_paths[ctx->i],
ctx->cancellable,
(GAsyncReadyCallback)list_build_object_ready,
ctx);
create_next_sms (ctx);
}
/**
@@ -417,14 +429,17 @@ mm_modem_messaging_list_sync (MMModemMessaging *self,
return NULL;
for (i = 0; sms_paths[i]; i++) {
MMSms *sms;
GObject *sms;
sms = mm_sms_new_sync (g_dbus_proxy_get_connection (
G_DBUS_PROXY (self)),
sms_paths[i],
sms = g_initable_new (MM_TYPE_SMS,
cancellable,
error);
error,
"g-flags", G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START,
"g-name", MM_DBUS_SERVICE,
"g-connection", g_dbus_proxy_get_connection (G_DBUS_PROXY (self)),
"g-object-path", sms_paths[i],
"g-interface-name", "org.freedesktop.ModemManager1.Sms",
NULL);
if (!sms) {
sms_object_list_free (sms_objects);
g_strfreev (sms_paths);
@@ -485,9 +500,13 @@ new_sms_object_ready (GDBusConnection *connection,
CreateSmsContext *ctx)
{
GError *error = NULL;
MMSms *sms;
GObject *sms;
GObject *source_object;
source_object = g_async_result_get_source_object (res);
sms = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, &error);
g_object_unref (source_object);
sms = mm_sms_new_finish (res, &error);
if (error)
g_simple_async_result_take_error (ctx->result, error);
else
@@ -516,12 +535,17 @@ create_sms_ready (MMModemMessaging *self,
return;
}
mm_sms_new (g_dbus_proxy_get_connection (
G_DBUS_PROXY (self)),
sms_path,
g_async_initable_new_async (MM_TYPE_SMS,
G_PRIORITY_DEFAULT,
ctx->cancellable,
(GAsyncReadyCallback)new_sms_object_ready,
ctx);
ctx,
"g-flags", G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START,
"g-name", MM_DBUS_SERVICE,
"g-connection", g_dbus_proxy_get_connection (G_DBUS_PROXY (self)),
"g-object-path", sms_path,
"g-interface-name", "org.freedesktop.ModemManager1.Sms",
NULL);
g_free (sms_path);
}
@@ -604,17 +628,21 @@ mm_modem_messaging_create_sync (MMModemMessaging *self,
cancellable,
error);
if (sms_path) {
sms = mm_sms_new_sync (g_dbus_proxy_get_connection (
G_DBUS_PROXY (self)),
sms_path,
sms = g_initable_new (MM_TYPE_SMS,
cancellable,
error);
error,
"g-flags", G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START,
"g-name", MM_DBUS_SERVICE,
"g-connection", g_dbus_proxy_get_connection (G_DBUS_PROXY (self)),
"g-object-path", sms_path,
"g-interface-name", "org.freedesktop.ModemManager1.Sms",
NULL);
g_free (sms_path);
}
g_variant_unref (dictionary);
return sms;
return (sms ? MM_SMS (sms) : NULL);
}
/*****************************************************************************/

View File

@@ -26,6 +26,22 @@
#include "mm-sms.h"
#include "mm-modem.h"
/**
* SECTION: mm-sms
* @title: MMSms
* @short_description: The SMS interface
*
* The #MMSms is an object providing access to the methods, signals and
* properties of the SMS interface.
*
* When the SMS is exposed and available in the bus, it is ensured that at
* least this interface is also available.
*/
G_DEFINE_TYPE (MMSms, mm_sms, MM_GDBUS_TYPE_SMS_PROXY)
/*****************************************************************************/
/**
* mm_sms_get_path:
* @self: A #MMSms.
@@ -37,7 +53,7 @@
const gchar *
mm_sms_get_path (MMSms *self)
{
g_return_val_if_fail (G_IS_DBUS_PROXY (self), NULL);
g_return_val_if_fail (MM_IS_SMS (self), NULL);
RETURN_NON_EMPTY_CONSTANT_STRING (
g_dbus_proxy_get_object_path (G_DBUS_PROXY (self)));
@@ -56,7 +72,7 @@ mm_sms_dup_path (MMSms *self)
{
gchar *value;
g_return_val_if_fail (G_IS_DBUS_PROXY (self), NULL);
g_return_val_if_fail (MM_IS_SMS (self), NULL);
g_object_get (G_OBJECT (self),
"g-object-path", &value,
@@ -65,50 +81,57 @@ mm_sms_dup_path (MMSms *self)
RETURN_NON_EMPTY_STRING (value);
}
/*****************************************************************************/
/**
* mm_sms_get_text:
* @self: A #MMSms.
*
* TODO
* Gets the message text, in UTF-8.
*
* <warning>It is only safe to use this function on the thread where @self was constructed. Use mm_sms_dup_text() if on another thread.</warning>
* <warning>The returned value is only valid until the property changes so
* it is only safe to use this function on the thread where
* @self was constructed. Use mm_sms_dup_text() if on another
* thread.</warning>
*
* Returns: (transfer none): The name of the text, or %NULL if it couldn't be retrieved.
* Returns: (transfer none): The message text, or %NULL if it doesn't contain any (e.g. contains data instead).
*/
const gchar *
mm_sms_get_text (MMSms *self)
{
g_return_val_if_fail (MM_GDBUS_IS_SMS (self), NULL);
g_return_val_if_fail (MM_IS_SMS (self), NULL);
RETURN_NON_EMPTY_CONSTANT_STRING (
mm_gdbus_sms_get_text (self));
mm_gdbus_sms_get_text (MM_GDBUS_SMS (self)));
}
/**
* mm_sms_dup_text:
* @self: A #MMSms.
*
* TODO
* Gets the message text, in UTF-8.
*
* Returns: (transfer full): The name of the text, or %NULL if it couldn't be retrieved. The returned value should be freed with g_free().
* Returns: (transfer full): The message text, or %NULL if it doesn't contain any (e.g. contains data instead). The returned value should be freed with g_free().
*/
gchar *
mm_sms_dup_text (MMSms *self)
{
g_return_val_if_fail (MM_GDBUS_IS_SMS (self), NULL);
g_return_val_if_fail (MM_IS_SMS (self), NULL);
RETURN_NON_EMPTY_STRING (
mm_gdbus_sms_dup_text (self));
mm_gdbus_sms_dup_text (MM_GDBUS_SMS (self)));
}
/*****************************************************************************/
/**
* mm_sms_get_data:
* @self: A #MMSms.
* @data_len: (out) Size of the output data, if any given.
* @data_len: (out): Size of the output data, if any given.
*
* TODO
* Gets the message data.
*
* Returns: (transfer none): The data, or %NULL if it couldn't be retrieved. The returned value should be freed with g_free().
* Returns: (transfer none): The message data, or %NULL if it doesn't contain any (e.g. contains text instead).
*/
const guint8 *
mm_sms_get_data (MMSms *self,
@@ -116,7 +139,8 @@ mm_sms_get_data (MMSms *self,
{
GVariant *data;
g_return_val_if_fail (MM_GDBUS_IS_SMS (self), NULL);
g_return_val_if_fail (MM_IS_SMS (self), NULL);
g_return_val_if_fail (data_len != NULL, NULL);
data = mm_gdbus_sms_get_data (MM_GDBUS_SMS (self));
return (data ?
@@ -132,9 +156,9 @@ mm_sms_get_data (MMSms *self,
* @self: A #MMSms.
* @data_len: (out) Size of the output data, if any given.
*
* TODO
* Gets the message data.
*
* Returns: (transfer full): The data, or %NULL if it couldn't be retrieved. The returned value should be freed with g_free().
* 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().
*/
guint8 *
mm_sms_dup_data (MMSms *self,
@@ -145,7 +169,7 @@ mm_sms_dup_data (MMSms *self,
const guint8 *orig_data;
gsize orig_data_len = 0;
g_return_val_if_fail (MM_GDBUS_IS_SMS (self), NULL);
g_return_val_if_fail (MM_IS_SMS (self), NULL);
/* Get a ref to ensure the variant is valid as long as we use it */
data_variant = mm_gdbus_sms_dup_data (MM_GDBUS_SMS (self));
@@ -166,268 +190,357 @@ mm_sms_dup_data (MMSms *self,
return out;
}
/*****************************************************************************/
/**
* mm_sms_get_number:
* @self: A #MMSms.
*
* TODO
* Gets the number to which the message is addressed.
*
* <warning>It is only safe to use this function on the thread where @self was constructed. Use mm_sms_dup_number() if on another thread.</warning>
* <warning>The returned value is only valid until the property changes so
* it is only safe to use this function on the thread where
* @self was constructed. Use mm_sms_dup_number() if on another
* thread.</warning>
*
* Returns: (transfer none): The name of the number, or %NULL if it couldn't be retrieved.
* Returns: (transfer none): The number, or %NULL if it couldn't be retrieved.
*/
const gchar *
mm_sms_get_number (MMSms *self)
{
g_return_val_if_fail (MM_GDBUS_IS_SMS (self), NULL);
g_return_val_if_fail (MM_IS_SMS (self), NULL);
RETURN_NON_EMPTY_CONSTANT_STRING (
mm_gdbus_sms_get_number (self));
mm_gdbus_sms_get_number (MM_GDBUS_SMS (self)));
}
/**
* mm_sms_dup_number:
* @self: A #MMSms.
*
* TODO
* Gets the number to which the message is addressed.
*
* Returns: (transfer full): The name of the number, or %NULL if it couldn't be retrieved. The returned value should be freed with g_free().
* Returns: (transfer full): The number, or %NULL if it couldn't be retrieved. The returned value should be freed with g_free().
*/
gchar *
mm_sms_dup_number (MMSms *self)
{
g_return_val_if_fail (MM_GDBUS_IS_SMS (self), NULL);
g_return_val_if_fail (MM_IS_SMS (self), NULL);
RETURN_NON_EMPTY_STRING (
mm_gdbus_sms_dup_number (self));
mm_gdbus_sms_dup_number (MM_GDBUS_SMS (self)));
}
/*****************************************************************************/
/**
* mm_sms_get_smsc:
* @self: A #MMSms.
*
* TODO
* Gets the SMS service center number.
*
* <warning>It is only safe to use this function on the thread where @self was constructed. Use mm_sms_dup_smsc() if on another thread.</warning>
* <warning>The returned value is only valid until the property changes so
* it is only safe to use this function on the thread where
* @self was constructed. Use mm_sms_dup_smsc() if on another
* thread.</warning>
*
* Returns: (transfer none): The name of the smsc, or %NULL if it couldn't be retrieved.
* Returns: (transfer none): The number of the SMSC, or %NULL if it couldn't be retrieved.
*/
const gchar *
mm_sms_get_smsc (MMSms *self)
{
g_return_val_if_fail (MM_GDBUS_IS_SMS (self), NULL);
g_return_val_if_fail (MM_IS_SMS (self), NULL);
RETURN_NON_EMPTY_CONSTANT_STRING (
mm_gdbus_sms_get_smsc (self));
mm_gdbus_sms_get_smsc (MM_GDBUS_SMS (self)));
}
/**
* mm_sms_dup_smsc:
* @self: A #MMSms.
*
* TODO
* Gets the SMS service center number.
*
* Returns: (transfer full): The name of the smsc, or %NULL if it couldn't be retrieved. The returned value should be freed with g_free().
* Returns: (transfer full): The number of the SMSC, or %NULL if it couldn't be retrieved. The returned value should be freed with g_free().
*/
gchar *
mm_sms_dup_smsc (MMSms *self)
{
g_return_val_if_fail (MM_GDBUS_IS_SMS (self), NULL);
g_return_val_if_fail (MM_IS_SMS (self), NULL);
RETURN_NON_EMPTY_STRING (
mm_gdbus_sms_dup_smsc (self));
mm_gdbus_sms_dup_smsc (MM_GDBUS_SMS (self)));
}
/*****************************************************************************/
/**
* mm_sms_get_timestamp:
* @self: A #MMSms.
*
* TODO
* Gets the time when the first PDU of the SMS message arrived the SMSC, in
* <ulink url="http://en.wikipedia.org/wiki/ISO_8601">ISO8601</ulink>
* format.
*
* <warning>It is only safe to use this function on the thread where @self was constructed. Use mm_sms_dup_timestamp() if on another thread.</warning>
* This field is only applicable if the PDU type is %MM_SMS_PDU_TYPE_DELIVER or
* %MM_SMS_PDU_TYPE_STATUS_REPORT.
*
* Returns: (transfer none): The name of the timestamp, or %NULL if it couldn't be retrieved.
* <warning>The returned value is only valid until the property changes so
* it is only safe to use this function on the thread where
* @self was constructed. Use mm_sms_dup_timestamp() if on another
* thread.</warning>
*
* Returns: (transfer none): The timestamp, or %NULL if it couldn't be retrieved.
*/
const gchar *
mm_sms_get_timestamp (MMSms *self)
{
g_return_val_if_fail (MM_GDBUS_IS_SMS (self), NULL);
g_return_val_if_fail (MM_IS_SMS (self), NULL);
RETURN_NON_EMPTY_CONSTANT_STRING (
mm_gdbus_sms_get_timestamp (self));
mm_gdbus_sms_get_timestamp (MM_GDBUS_SMS (self)));
}
/**
* mm_sms_dup_timestamp:
* @self: A #MMSms.
*
* TODO
* Gets the time when the first PDU of the SMS message arrived the SMSC, in
* <ulink url="http://en.wikipedia.org/wiki/ISO_8601">ISO8601</ulink>
* format.
*
* Returns: (transfer full): The name of the timestamp, or %NULL if it couldn't be retrieved. The returned value should be freed with g_free().
* This field is only applicable if the PDU type is %MM_SMS_PDU_TYPE_DELIVER or
* %MM_SMS_PDU_TYPE_STATUS_REPORT.
*
* Returns: (transfer full): The timestamp, or %NULL if it couldn't be retrieved. The returned value should be freed with g_free().
*/
gchar *
mm_sms_dup_timestamp (MMSms *self)
{
g_return_val_if_fail (MM_GDBUS_IS_SMS (self), NULL);
g_return_val_if_fail (MM_IS_SMS (self), NULL);
RETURN_NON_EMPTY_STRING (
mm_gdbus_sms_dup_timestamp (self));
mm_gdbus_sms_dup_timestamp (MM_GDBUS_SMS (self)));
}
/*****************************************************************************/
/**
* mm_sms_get_discharge_timestamp:
* @self: A #MMSms.
*
* TODO
* Gets the time when the first PDU of the SMS message left the SMSC, in
* <ulink url="http://en.wikipedia.org/wiki/ISO_8601">ISO8601</ulink>
* format.
*
* <warning>It is only safe to use this function on the thread where @self was constructed. Use mm_sms_dup_timestamp() if on another thread.</warning>
* This field is only applicable if the PDU type is %MM_SMS_PDU_TYPE_STATUS_REPORT.
*
* Returns: (transfer none): The name of the timestamp, or %NULL if it couldn't be retrieved.
* <warning>The returned value is only valid until the property changes so
* it is only safe to use this function on the thread where
* @self was constructed. Use mm_sms_dup_discharge_timestamp() if on another
* thread.</warning>
*
* Returns: (transfer none): The timestamp, or %NULL if it couldn't be retrieved.
*/
const gchar *
mm_sms_get_discharge_timestamp (MMSms *self)
{
g_return_val_if_fail (MM_GDBUS_IS_SMS (self), NULL);
g_return_val_if_fail (MM_IS_SMS (self), NULL);
RETURN_NON_EMPTY_CONSTANT_STRING (
mm_gdbus_sms_get_discharge_timestamp (self));
mm_gdbus_sms_get_discharge_timestamp (MM_GDBUS_SMS (self)));
}
/**
* mm_sms_dup_discharge_timestamp:
* @self: A #MMSms.
*
* TODO
* Gets the time when the first PDU of the SMS message left the SMSC, in
* <ulink url="http://en.wikipedia.org/wiki/ISO_8601">ISO8601</ulink>
* format.
*
* Returns: (transfer full): The name of the timestamp, or %NULL if it couldn't be retrieved. The returned value should be freed with g_free().
* This field is only applicable if the PDU type is %MM_SMS_PDU_TYPE_STATUS_REPORT.
*
* Returns: (transfer full): The timestamp, or %NULL if it couldn't be retrieved. The returned value should be freed with g_free().
*/
gchar *
mm_sms_dup_discharge_timestamp (MMSms *self)
{
g_return_val_if_fail (MM_GDBUS_IS_SMS (self), NULL);
g_return_val_if_fail (MM_IS_SMS (self), NULL);
RETURN_NON_EMPTY_STRING (
mm_gdbus_sms_dup_discharge_timestamp (self));
mm_gdbus_sms_dup_discharge_timestamp (MM_GDBUS_SMS (self)));
}
/*****************************************************************************/
/**
* mm_sms_get_validity:
* @self: A #MMSms.
*
* TODO
* Gets the validity time of the SMS.
*
* Returns: TODO
* Returns: the validity time or 0 if unknown.
*/
guint
mm_sms_get_validity (MMSms *self)
{
g_return_val_if_fail (MM_GDBUS_IS_SMS (self), 0);
g_return_val_if_fail (MM_IS_SMS (self), 0);
return mm_gdbus_sms_get_validity (self);
return mm_gdbus_sms_get_validity (MM_GDBUS_SMS (self));
}
/*****************************************************************************/
/**
* mm_sms_get_class:
* @self: A #MMSms.
*
* TODO
* Gets the 3GPP message class of the SMS.
*
* Returns: TODO
* Returns: the message class.
*/
guint
mm_sms_get_class (MMSms *self)
{
g_return_val_if_fail (MM_GDBUS_IS_SMS (self), 0);
g_return_val_if_fail (MM_IS_SMS (self), 0);
return mm_gdbus_sms_get_class (self);
return mm_gdbus_sms_get_class (MM_GDBUS_SMS (self));
}
/*****************************************************************************/
/**
* mm_sms_get_message_reference:
* @self: A #MMSms.
*
* TODO
* Gets the message reference of the last PDU sent/received within this SMS.
*
* Returns: TODO
* If the PDU type is %MM_SMS_PDU_TYPE_STATUS_REPORT, this field identifies the
* message reference of the PDU associated to the status report.
*
* Returns: The message reference.
*/
guint
mm_sms_get_message_reference (MMSms *self)
{
g_return_val_if_fail (MM_GDBUS_IS_SMS (self), 0);
g_return_val_if_fail (MM_IS_SMS (self), 0);
return mm_gdbus_sms_get_message_reference (self);
return mm_gdbus_sms_get_message_reference (MM_GDBUS_SMS (self));
}
/*****************************************************************************/
/**
* mm_sms_get_delivery_report_request:
* @self: A #MMSms.
*
* Checks whether delivery report is requested for this SMS.
*
* Returns: %TRUE if delivery report is requested, %FALSE otherwise.
*/
gboolean
mm_sms_get_delivery_report_request (MMSms *self)
{
g_return_val_if_fail (MM_GDBUS_IS_SMS (self), FALSE);
g_return_val_if_fail (MM_IS_SMS (self), FALSE);
return mm_gdbus_sms_get_delivery_report_request (self);
return mm_gdbus_sms_get_delivery_report_request (MM_GDBUS_SMS (self));
}
/*****************************************************************************/
/**
* mm_sms_get_delivery_state:
* @self: A #MMSms.
*
* TODO
* Gets the delivery state of this SMS.
*
* Returns: TODO
* This field is only applicable if the PDU type is %MM_SMS_PDU_TYPE_STATUS_REPORT.
*
* Returns: A #MMSmsDeliveryState specifying the delivery state.
*/
guint
mm_sms_get_delivery_state (MMSms *self)
{
g_return_val_if_fail (MM_GDBUS_IS_SMS (self), MM_SMS_DELIVERY_STATE_UNKNOWN);
g_return_val_if_fail (MM_IS_SMS (self), MM_SMS_DELIVERY_STATE_UNKNOWN);
return mm_gdbus_sms_get_delivery_state (self);
return mm_gdbus_sms_get_delivery_state (MM_GDBUS_SMS (self));
}
/*****************************************************************************/
/**
* mm_sms_get_state:
* @self: A #MMSms.
*
* TODO
* Gets the state of this SMS.
*
* Returns: TODO
* Returns: A #MMSmsState specifying the state.
*/
MMSmsState
mm_sms_get_state (MMSms *self)
{
g_return_val_if_fail (MM_GDBUS_IS_SMS (self), MM_SMS_STATE_UNKNOWN);
g_return_val_if_fail (MM_IS_SMS (self), MM_SMS_STATE_UNKNOWN);
return mm_gdbus_sms_get_state (self);
return (MMSmsState)mm_gdbus_sms_get_state (MM_GDBUS_SMS (self));
}
/*****************************************************************************/
/**
* mm_sms_get_storage:
* @self: A #MMSms.
*
* TODO
* Gets the storage in which this SMS is kept.
*
* Returns: TODO
* Returns: A #MMSmsStorage specifying the storage.
*/
MMSmsStorage
mm_sms_get_storage (MMSms *self)
{
g_return_val_if_fail (MM_GDBUS_IS_SMS (self), MM_SMS_STORAGE_UNKNOWN);
g_return_val_if_fail (MM_IS_SMS (self), MM_SMS_STORAGE_UNKNOWN);
return mm_gdbus_sms_get_storage (self);
return (MMSmsStorage)mm_gdbus_sms_get_storage (MM_GDBUS_SMS (self));
}
/*****************************************************************************/
/**
* mm_sms_get_pdu_type:
* @self: A #MMSms.
*
* TODO
* Gets the PDU type on which this SMS is based.
*
* Returns: TODO
* Returns: A #MMSmsPduType specifying the PDU type.
*/
MMSmsPduType
mm_sms_get_pdu_type (MMSms *self)
{
g_return_val_if_fail (MM_GDBUS_IS_SMS (self), MM_SMS_PDU_TYPE_UNKNOWN);
g_return_val_if_fail (MM_IS_SMS (self), MM_SMS_PDU_TYPE_UNKNOWN);
return (MMSmsPduType)mm_gdbus_sms_get_pdu_type (self);
return (MMSmsPduType)mm_gdbus_sms_get_pdu_type (MM_GDBUS_SMS (self));
}
/*****************************************************************************/
/**
* mm_sms_send_finish:
* @self: A #MMSms.
* @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to mm_sms_send().
* @error: Return location for error or %NULL.
*
* Finishes an operation started with mm_sms_send().
*
* Returns: %TRUE if the operation succeded, %FALSE if @error is set.
*/
gboolean
mm_sms_send_finish (MMSms *self,
GAsyncResult *res,
GError **error)
{
g_return_val_if_fail (MM_IS_SMS (self), FALSE);
return mm_gdbus_sms_call_send_finish (MM_GDBUS_SMS (self), res, error);
}
/**
@@ -437,7 +550,9 @@ mm_sms_get_pdu_type (MMSms *self)
* @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
* @user_data: User data to pass to @callback.
*
* TODO
* Asynchronously requests to queue the message for delivery.
*
* SMS objects can only be sent once.
*
* When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
* You can then call mm_sms_send_finish() to get the result of the operation.
@@ -450,59 +565,63 @@ mm_sms_send (MMSms *self,
GAsyncReadyCallback callback,
gpointer user_data)
{
g_return_if_fail (MM_GDBUS_IS_SMS (self));
g_return_if_fail (MM_IS_SMS (self));
mm_gdbus_sms_call_send (self,
mm_gdbus_sms_call_send (MM_GDBUS_SMS (self),
cancellable,
callback,
user_data);
}
/**
* mm_sms_send_finish:
* @self: A #MMSms.
* @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to mm_sms_send().
* @error: Return location for error or %NULL.
*
* Finishes an operation started with mm_sms_send().
*
* Returns: (skip): %TRUE if the operation succeded, %FALSE if @error is set.
*/
gboolean
mm_sms_send_finish (MMSms *self,
GAsyncResult *res,
GError **error)
{
g_return_val_if_fail (MM_GDBUS_IS_SMS (self), FALSE);
return mm_gdbus_sms_call_send_finish (self, res, error);
}
/**
* mm_sms_send_sync:
* @self: A #MMSms.
* @cancellable: (allow-none): A #GCancellable or %NULL.
* @error: Return location for error or %NULL.
*
* TODO
* Synchronously requests to queue the message for delivery.
*
* SMS objects can only be sent once.
*
* The calling thread is blocked until a reply is received.
* See mm_sms_send() for the asynchronous version of this method.
*
* Returns: (skip): %TRUE if the operation succeded, %FALSE if @error is set.
* Returns: %TRUE if the operation succeded, %FALSE if @error is set.
*/
gboolean
mm_sms_send_sync (MMSms *self,
GCancellable *cancellable,
GError **error)
{
g_return_val_if_fail (MM_GDBUS_IS_SMS (self), FALSE);
g_return_val_if_fail (MM_IS_SMS (self), FALSE);
return mm_gdbus_sms_call_send_sync (self,
return mm_gdbus_sms_call_send_sync (MM_GDBUS_SMS (self),
cancellable,
error);
}
/*****************************************************************************/
/**
* mm_sms_store_finish:
* @self: A #MMSms.
* @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to mm_sms_store().
* @error: Return location for error or %NULL.
*
* Finishes an operation started with mm_sms_store().
*
* Returns: %TRUE if the operation succeded, %FALSE if @error is set.
*/
gboolean
mm_sms_store_finish (MMSms *self,
GAsyncResult *res,
GError **error)
{
g_return_val_if_fail (MM_IS_SMS (self), FALSE);
return mm_gdbus_sms_call_store_finish (MM_GDBUS_SMS (self), res, error);
}
/**
* mm_sms_store:
* @self: A #MMSms.
@@ -511,7 +630,9 @@ mm_sms_send_sync (MMSms *self,
* @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
* @user_data: User data to pass to @callback.
*
* TODO
* Asynchronoulsy requests to store the message in the device if not already done.
*
* SMS objects can only be stored once.
*
* When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
* You can then call mm_sms_store_finish() to get the result of the operation.
@@ -525,35 +646,15 @@ mm_sms_store (MMSms *self,
GAsyncReadyCallback callback,
gpointer user_data)
{
g_return_if_fail (MM_GDBUS_IS_SMS (self));
g_return_if_fail (MM_IS_SMS (self));
mm_gdbus_sms_call_store (self,
mm_gdbus_sms_call_store (MM_GDBUS_SMS (self),
storage,
cancellable,
callback,
user_data);
}
/**
* mm_sms_store_finish:
* @self: A #MMSms.
* @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to mm_sms_store().
* @error: Return location for error or %NULL.
*
* Finishes an operation started with mm_sms_store().
*
* Returns: (skip): %TRUE if the operation succeded, %FALSE if @error is set.
*/
gboolean
mm_sms_store_finish (MMSms *self,
GAsyncResult *res,
GError **error)
{
g_return_val_if_fail (MM_GDBUS_IS_SMS (self), FALSE);
return mm_gdbus_sms_call_store_finish (self, res, error);
}
/**
* mm_sms_store_sync:
* @self: A #MMSms.
@@ -561,12 +662,14 @@ mm_sms_store_finish (MMSms *self,
* @cancellable: (allow-none): A #GCancellable or %NULL.
* @error: Return location for error or %NULL.
*
* TODO
* Synchronoulsy requests to store the message in the device if not already done.
*
* SMS objects can only be stored once.
*
* The calling thread is blocked until a reply is received.
* See mm_sms_store() for the asynchronous version of this method.
*
* Returns: (skip): %TRUE if the operation succeded, %FALSE if @error is set.
* Returns: %TRUE if the operation succeded, %FALSE if @error is set.
*/
gboolean
mm_sms_store_sync (MMSms *self,
@@ -574,47 +677,22 @@ mm_sms_store_sync (MMSms *self,
GCancellable *cancellable,
GError **error)
{
g_return_val_if_fail (MM_GDBUS_IS_SMS (self), FALSE);
g_return_val_if_fail (MM_IS_SMS (self), FALSE);
return mm_gdbus_sms_call_store_sync (self,
return mm_gdbus_sms_call_store_sync (MM_GDBUS_SMS (self),
storage,
cancellable,
error);
}
void
mm_sms_new (GDBusConnection *connection,
const gchar *path,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data)
/*****************************************************************************/
static void
mm_sms_init (MMSms *self)
{
return mm_gdbus_sms_proxy_new (connection,
G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START,
MM_DBUS_SERVICE,
path,
cancellable,
callback,
user_data);
}
MMSms *
mm_sms_new_finish (GAsyncResult *res,
GError **error)
static void
mm_sms_class_init (MMSmsClass *sms_class)
{
return mm_gdbus_sms_proxy_new_finish (res, error);
}
MMSms *
mm_sms_new_sync (GDBusConnection *connection,
const gchar *path,
GCancellable *cancellable,
GError **error)
{
return mm_gdbus_sms_proxy_new_sync (connection,
G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START,
MM_DBUS_SERVICE,
path,
cancellable,
error);
}

View File

@@ -28,26 +28,73 @@
G_BEGIN_DECLS
typedef MmGdbusSms MMSms;
#define MM_TYPE_SMS(o) MM_GDBUS_TYPE_SMS (o)
#define MM_SMS(o) MM_GDBUS_SMS(o)
#define MM_IS_SMS(o) MM_GDBUS_IS_SMS(o)
#define MM_TYPE_SMS (mm_sms_get_type ())
#define MM_SMS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MM_TYPE_SMS, MMSms))
#define MM_SMS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MM_TYPE_SMS, MMSmsClass))
#define MM_IS_SMS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MM_TYPE_SMS))
#define MM_IS_SMS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), MM_TYPE_SMS))
#define MM_SMS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MM_TYPE_SMS, MMSmsClass))
typedef struct _MMSms MMSms;
typedef struct _MMSmsClass MMSmsClass;
/**
* MMSms:
*
* The #MMSms structure contains private data and should only be accessed
* using the provided API.
*/
struct _MMSms {
/*< private >*/
MmGdbusSmsProxy parent;
gpointer unused;
};
struct _MMSmsClass {
/*< private >*/
MmGdbusSmsProxyClass parent;
};
GType mm_sms_get_type (void);
const gchar *mm_sms_get_path (MMSms *self);
gchar *mm_sms_dup_path (MMSms *self);
void mm_sms_new (GDBusConnection *connection,
const gchar *object_path,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
MMSms *mm_sms_new_finish (GAsyncResult *res,
GError **error);
const gchar *mm_sms_get_text (MMSms *self);
gchar *mm_sms_dup_text (MMSms *self);
MMSms *mm_sms_new_sync (GDBusConnection *connection,
const gchar *object_path,
GCancellable *cancellable,
GError **error);
const guint8 *mm_sms_get_data (MMSms *self,
gsize *data_len);
guint8 *mm_sms_dup_data (MMSms *self,
gsize *data_len);
const gchar *mm_sms_get_number (MMSms *self);
gchar *mm_sms_dup_number (MMSms *self);
const gchar *mm_sms_get_smsc (MMSms *self);
gchar *mm_sms_dup_smsc (MMSms *self);
const gchar *mm_sms_get_timestamp (MMSms *self);
gchar *mm_sms_dup_timestamp (MMSms *self);
const gchar *mm_sms_get_discharge_timestamp (MMSms *self);
gchar *mm_sms_dup_discharge_timestamp (MMSms *self);
guint mm_sms_get_validity (MMSms *self);
guint mm_sms_get_class (MMSms *self);
guint mm_sms_get_message_reference (MMSms *self);
gboolean mm_sms_get_delivery_report_request (MMSms *self);
guint mm_sms_get_delivery_state (MMSms *self);
MMSmsState mm_sms_get_state (MMSms *self);
MMSmsStorage mm_sms_get_storage (MMSms *self);
MMSmsPduType mm_sms_get_pdu_type (MMSms *self);
void mm_sms_send (MMSms *self,
GCancellable *cancellable,
@@ -73,29 +120,6 @@ gboolean mm_sms_store_sync (MMSms *self,
GCancellable *cancellable,
GError **error);
const gchar *mm_sms_get_text (MMSms *self);
gchar *mm_sms_dup_text (MMSms *self);
const guint8 *mm_sms_get_data (MMSms *self,
gsize *data_len);
guint8 *mm_sms_dup_data (MMSms *self,
gsize *data_len);
const gchar *mm_sms_get_number (MMSms *self);
gchar *mm_sms_dup_number (MMSms *self);
const gchar *mm_sms_get_smsc (MMSms *self);
gchar *mm_sms_dup_smsc (MMSms *self);
const gchar *mm_sms_get_timestamp (MMSms *self);
gchar *mm_sms_dup_timestamp (MMSms *self);
const gchar *mm_sms_get_discharge_timestamp (MMSms *self);
gchar *mm_sms_dup_discharge_timestamp (MMSms *self);
guint mm_sms_get_validity (MMSms *self);
guint mm_sms_get_class (MMSms *self);
guint mm_sms_get_message_reference (MMSms *self);
gboolean mm_sms_get_delivery_report_request (MMSms *self);
guint mm_sms_get_delivery_state (MMSms *self);
MMSmsState mm_sms_get_state (MMSms *self);
MMSmsStorage mm_sms_get_storage (MMSms *self);
MMSmsPduType mm_sms_get_pdu_type (MMSms *self);
G_END_DECLS
#endif /* _MM_SMS_H_ */