aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libmm-glib/Makefile.am1
-rw-r--r--libmm-glib/mm-helpers.h45
-rw-r--r--libmm-glib/mm-modem-3gpp.c25
-rw-r--r--libmm-glib/mm-modem.c59
-rw-r--r--libmm-glib/mm-sim.c25
5 files changed, 118 insertions, 37 deletions
diff --git a/libmm-glib/Makefile.am b/libmm-glib/Makefile.am
index 69a22633..694e03a9 100644
--- a/libmm-glib/Makefile.am
+++ b/libmm-glib/Makefile.am
@@ -11,6 +11,7 @@ libmm_glib_la_CPPFLAGS = \
libmm_glib_la_SOURCES = \
libmm-glib.h \
+ mm-helpers.h \
mm-manager.h \
mm-manager.c \
mm-object.h \
diff --git a/libmm-glib/mm-helpers.h b/libmm-glib/mm-helpers.h
new file mode 100644
index 00000000..2e8cb589
--- /dev/null
+++ b/libmm-glib/mm-helpers.h
@@ -0,0 +1,45 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * libmm -- Access modem status & information from glib applications
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301 USA.
+ *
+ * Copyright (C) 2011 Aleksander Morgado <aleksander@gnu.org>
+ */
+
+#ifndef _MM_HELPERS_H_
+#define _MM_HELPERS_H_
+
+#define RETURN_NON_EMPTY_CONSTANT_STRING(input) do { \
+ const gchar *str; \
+ \
+ str = (input); \
+ if (str && str[0]) \
+ return str; \
+ } while (0); \
+ return NULL
+
+#define RETURN_NON_EMPTY_STRING(input) do { \
+ gchar *str; \
+ \
+ str = (input); \
+ if (str && str[0]) \
+ return str; \
+ g_free (str); \
+ } while (0); \
+ return NULL
+
+#endif /* _MM_HELPERS_H_ */
diff --git a/libmm-glib/mm-modem-3gpp.c b/libmm-glib/mm-modem-3gpp.c
index ed316b85..7a8129f4 100644
--- a/libmm-glib/mm-modem-3gpp.c
+++ b/libmm-glib/mm-modem-3gpp.c
@@ -22,6 +22,7 @@
#include <gio/gio.h>
+#include "mm-helpers.h"
#include "mm-modem-3gpp.h"
/**
@@ -37,7 +38,8 @@ mm_modem_3gpp_get_path (MMModem3gpp *self)
{
g_return_val_if_fail (G_IS_DBUS_PROXY (self), NULL);
- return g_dbus_proxy_get_object_path (G_DBUS_PROXY (self));
+ RETURN_NON_EMPTY_CONSTANT_STRING (
+ g_dbus_proxy_get_object_path (G_DBUS_PROXY (self)));
}
/**
@@ -58,8 +60,7 @@ mm_modem_3gpp_dup_path (MMModem3gpp *self)
g_object_get (G_OBJECT (self),
"g-object-path", &value,
NULL);
-
- return value;
+ RETURN_NON_EMPTY_STRING (value);
}
/**
@@ -78,7 +79,8 @@ mm_modem_3gpp_get_imei (MMModem3gpp *self)
{
g_return_val_if_fail (MM_GDBUS_IS_MODEM3GPP (self), NULL);
- return mm_gdbus_modem3gpp_get_imei (self);
+ RETURN_NON_EMPTY_CONSTANT_STRING (
+ mm_gdbus_modem3gpp_get_imei (self));
}
/**
@@ -95,7 +97,8 @@ mm_modem_3gpp_dup_imei (MMModem3gpp *self)
{
g_return_val_if_fail (MM_GDBUS_IS_MODEM3GPP (self), NULL);
- return mm_gdbus_modem3gpp_dup_imei (self);
+ RETURN_NON_EMPTY_STRING (
+ mm_gdbus_modem3gpp_dup_imei (self));
}
/**
@@ -123,7 +126,8 @@ mm_modem_3gpp_get_operator_code (MMModem3gpp *self)
{
g_return_val_if_fail (MM_GDBUS_IS_MODEM3GPP (self), NULL);
- return mm_gdbus_modem3gpp_get_operator_code (self);
+ RETURN_NON_EMPTY_CONSTANT_STRING (
+ mm_gdbus_modem3gpp_get_operator_code (self));
}
/**
@@ -145,7 +149,8 @@ mm_modem_3gpp_dup_operator_code (MMModem3gpp *self)
{
g_return_val_if_fail (MM_GDBUS_IS_MODEM3GPP (self), NULL);
- return mm_gdbus_modem3gpp_dup_operator_code (self);
+ RETURN_NON_EMPTY_STRING (
+ mm_gdbus_modem3gpp_dup_operator_code (self));
}
/**
@@ -164,7 +169,8 @@ mm_modem_3gpp_get_operator_name (MMModem3gpp *self)
{
g_return_val_if_fail (MM_GDBUS_IS_MODEM3GPP (self), NULL);
- return mm_gdbus_modem3gpp_get_operator_name (self);
+ RETURN_NON_EMPTY_CONSTANT_STRING (
+ mm_gdbus_modem3gpp_get_operator_name (self));
}
/**
@@ -181,7 +187,8 @@ mm_modem_3gpp_dup_operator_name (MMModem3gpp *self)
{
g_return_val_if_fail (MM_GDBUS_IS_MODEM3GPP (self), NULL);
- return mm_gdbus_modem3gpp_dup_operator_name (self);
+ RETURN_NON_EMPTY_STRING (
+ mm_gdbus_modem3gpp_dup_operator_name (self));
}
/**
diff --git a/libmm-glib/mm-modem.c b/libmm-glib/mm-modem.c
index 1af1ab64..3109df9e 100644
--- a/libmm-glib/mm-modem.c
+++ b/libmm-glib/mm-modem.c
@@ -24,6 +24,7 @@
#include <mm-common-helpers.h>
+#include "mm-helpers.h"
#include "mm-modem.h"
/**
@@ -39,7 +40,8 @@ mm_modem_get_path (MMModem *self)
{
g_return_val_if_fail (G_IS_DBUS_PROXY (self), NULL);
- return g_dbus_proxy_get_object_path (G_DBUS_PROXY (self));
+ RETURN_NON_EMPTY_CONSTANT_STRING (
+ g_dbus_proxy_get_object_path (G_DBUS_PROXY (self)));
}
/**
@@ -61,7 +63,7 @@ mm_modem_dup_path (MMModem *self)
"g-object-path", &value,
NULL);
- return value;
+ RETURN_NON_EMPTY_STRING (value);
}
/**
@@ -79,7 +81,7 @@ mm_modem_get_sim_path (MMModem *self)
{
g_return_val_if_fail (MM_GDBUS_IS_MODEM (self), NULL);
- return mm_gdbus_modem_get_sim (self);
+ RETURN_NON_EMPTY_CONSTANT_STRING (mm_gdbus_modem_get_sim (self));
}
/**
@@ -95,7 +97,8 @@ mm_modem_dup_sim_path (MMModem *self)
{
g_return_val_if_fail (MM_GDBUS_IS_MODEM (self), NULL);
- return mm_gdbus_modem_dup_sim (self);
+ RETURN_NON_EMPTY_STRING (
+ mm_gdbus_modem_dup_sim (self));
}
/**
@@ -193,7 +196,8 @@ mm_modem_get_manufacturer (MMModem *self)
{
g_return_val_if_fail (MM_GDBUS_IS_MODEM (self), NULL);
- return mm_gdbus_modem_get_manufacturer (self);
+ RETURN_NON_EMPTY_CONSTANT_STRING (
+ mm_gdbus_modem_get_manufacturer (self));
}
/**
@@ -209,7 +213,8 @@ mm_modem_dup_manufacturer (MMModem *self)
{
g_return_val_if_fail (MM_GDBUS_IS_MODEM (self), NULL);
- return mm_gdbus_modem_dup_manufacturer (self);
+ RETURN_NON_EMPTY_STRING (
+ mm_gdbus_modem_dup_manufacturer (self));
}
/**
@@ -227,7 +232,8 @@ mm_modem_get_model (MMModem *self)
{
g_return_val_if_fail (MM_GDBUS_IS_MODEM (self), NULL);
- return mm_gdbus_modem_get_model (self);
+ RETURN_NON_EMPTY_CONSTANT_STRING (
+ mm_gdbus_modem_get_model (self));
}
/**
@@ -243,7 +249,8 @@ mm_modem_dup_model (MMModem *self)
{
g_return_val_if_fail (MM_GDBUS_IS_MODEM (self), NULL);
- return mm_gdbus_modem_dup_model (self);
+ RETURN_NON_EMPTY_STRING (
+ mm_gdbus_modem_dup_model (self));
}
/**
@@ -261,7 +268,8 @@ mm_modem_get_revision (MMModem *self)
{
g_return_val_if_fail (MM_GDBUS_IS_MODEM (self), NULL);
- return mm_gdbus_modem_get_revision (self);
+ RETURN_NON_EMPTY_CONSTANT_STRING (
+ mm_gdbus_modem_get_revision (self));
}
/**
@@ -277,7 +285,8 @@ mm_modem_dup_revision (MMModem *self)
{
g_return_val_if_fail (MM_GDBUS_IS_MODEM (self), NULL);
- return mm_gdbus_modem_dup_revision (self);
+ RETURN_NON_EMPTY_STRING (
+ mm_gdbus_modem_dup_revision (self));
}
/**
@@ -304,7 +313,8 @@ mm_modem_get_device_identifier (MMModem *self)
{
g_return_val_if_fail (MM_GDBUS_IS_MODEM (self), NULL);
- return mm_gdbus_modem_get_device_identifier (self);
+ RETURN_NON_EMPTY_CONSTANT_STRING (
+ mm_gdbus_modem_get_device_identifier (self));
}
/**
@@ -329,7 +339,8 @@ mm_modem_dup_device_identifier (MMModem *self)
{
g_return_val_if_fail (MM_GDBUS_IS_MODEM (self), NULL);
- return mm_gdbus_modem_dup_device_identifier (self);
+ RETURN_NON_EMPTY_STRING (
+ mm_gdbus_modem_dup_device_identifier (self));
}
/**
@@ -348,7 +359,8 @@ mm_modem_get_device (MMModem *self)
{
g_return_val_if_fail (MM_GDBUS_IS_MODEM (self), NULL);
- return mm_gdbus_modem_get_device (self);
+ RETURN_NON_EMPTY_CONSTANT_STRING (
+ mm_gdbus_modem_get_device (self));
}
/**
@@ -365,7 +377,8 @@ mm_modem_dup_device (MMModem *self)
{
g_return_val_if_fail (MM_GDBUS_IS_MODEM (self), NULL);
- return mm_gdbus_modem_dup_device (self);
+ RETURN_NON_EMPTY_STRING (
+ mm_gdbus_modem_dup_device (self));
}
/**
@@ -384,7 +397,8 @@ mm_modem_get_driver (MMModem *self)
{
g_return_val_if_fail (MM_GDBUS_IS_MODEM (self), NULL);
- return mm_gdbus_modem_get_driver (self);
+ RETURN_NON_EMPTY_CONSTANT_STRING (
+ mm_gdbus_modem_get_driver (self));
}
/**
@@ -401,7 +415,8 @@ mm_modem_dup_driver (MMModem *self)
{
g_return_val_if_fail (MM_GDBUS_IS_MODEM (self), NULL);
- return mm_gdbus_modem_dup_driver (self);
+ RETURN_NON_EMPTY_STRING (
+ mm_gdbus_modem_dup_driver (self));
}
/**
@@ -419,7 +434,8 @@ mm_modem_get_plugin (MMModem *self)
{
g_return_val_if_fail (MM_GDBUS_IS_MODEM (self), NULL);
- return mm_gdbus_modem_get_plugin (self);
+ RETURN_NON_EMPTY_CONSTANT_STRING (
+ mm_gdbus_modem_get_plugin (self));
}
/**
@@ -435,7 +451,8 @@ mm_modem_dup_plugin (MMModem *self)
{
g_return_val_if_fail (MM_GDBUS_IS_MODEM (self), NULL);
- return mm_gdbus_modem_dup_plugin (self);
+ RETURN_NON_EMPTY_STRING (
+ mm_gdbus_modem_dup_plugin (self));
}
/**
@@ -456,7 +473,8 @@ mm_modem_get_equipment_identifier (MMModem *self)
{
g_return_val_if_fail (MM_GDBUS_IS_MODEM (self), NULL);
- return mm_gdbus_modem_get_equipment_identifier (self);
+ RETURN_NON_EMPTY_CONSTANT_STRING (
+ mm_gdbus_modem_get_equipment_identifier (self));
}
/**
@@ -475,7 +493,8 @@ mm_modem_dup_equipment_identifier (MMModem *self)
{
g_return_val_if_fail (MM_GDBUS_IS_MODEM (self), NULL);
- return mm_gdbus_modem_dup_equipment_identifier (self);
+ RETURN_NON_EMPTY_STRING (
+ mm_gdbus_modem_dup_equipment_identifier (self));
}
/**
diff --git a/libmm-glib/mm-sim.c b/libmm-glib/mm-sim.c
index 46722fdd..40bb93b0 100644
--- a/libmm-glib/mm-sim.c
+++ b/libmm-glib/mm-sim.c
@@ -20,6 +20,7 @@
* Copyright (C) 2011 Aleksander Morgado <aleksander@gnu.org>
*/
+#include "mm-helpers.h"
#include "mm-sim.h"
/**
@@ -76,7 +77,8 @@ mm_sim_get_identifier (MMSim *self)
{
g_return_val_if_fail (MM_GDBUS_IS_SIM (self), NULL);
- return mm_gdbus_sim_get_sim_identifier (self);
+ RETURN_NON_EMPTY_CONSTANT_STRING (
+ mm_gdbus_sim_get_sim_identifier (self));
}
/**
@@ -92,7 +94,8 @@ mm_sim_dup_identifier (MMSim *self)
{
g_return_val_if_fail (MM_GDBUS_IS_SIM (self), NULL);
- return mm_gdbus_sim_dup_sim_identifier (self);
+ RETURN_NON_EMPTY_STRING (
+ mm_gdbus_sim_dup_sim_identifier (self));
}
/**
@@ -110,7 +113,8 @@ mm_sim_get_imsi (MMSim *self)
{
g_return_val_if_fail (MM_GDBUS_IS_SIM (self), NULL);
- return mm_gdbus_sim_get_imsi (self);
+ RETURN_NON_EMPTY_CONSTANT_STRING (
+ mm_gdbus_sim_get_imsi (self));
}
/**
@@ -126,7 +130,8 @@ mm_sim_dup_imsi (MMSim *self)
{
g_return_val_if_fail (MM_GDBUS_IS_SIM (self), NULL);
- return mm_gdbus_sim_dup_imsi (self);
+ RETURN_NON_EMPTY_STRING (
+ mm_gdbus_sim_dup_imsi (self));
}
/**
@@ -144,7 +149,8 @@ mm_sim_get_operator_identifier (MMSim *self)
{
g_return_val_if_fail (MM_GDBUS_IS_SIM (self), NULL);
- return mm_gdbus_sim_get_operator_identifier (self);
+ RETURN_NON_EMPTY_CONSTANT_STRING (
+ mm_gdbus_sim_get_operator_identifier (self));
}
/**
@@ -160,7 +166,8 @@ mm_sim_dup_operator_identifier (MMSim *self)
{
g_return_val_if_fail (MM_GDBUS_IS_SIM (self), NULL);
- return mm_gdbus_sim_dup_operator_identifier (self);
+ RETURN_NON_EMPTY_STRING (
+ mm_gdbus_sim_dup_operator_identifier (self));
}
/**
@@ -178,7 +185,8 @@ mm_sim_get_operator_name (MMSim *self)
{
g_return_val_if_fail (MM_GDBUS_IS_SIM (self), NULL);
- return mm_gdbus_sim_get_operator_name (self);
+ RETURN_NON_EMPTY_CONSTANT_STRING (
+ mm_gdbus_sim_get_operator_name (self));
}
/**
@@ -194,7 +202,8 @@ mm_sim_dup_operator_name (MMSim *self)
{
g_return_val_if_fail (MM_GDBUS_IS_SIM (self), NULL);
- return mm_gdbus_sim_dup_operator_name (self);
+ RETURN_NON_EMPTY_STRING (
+ mm_gdbus_sim_dup_operator_name (self));
}
/**