aboutsummaryrefslogtreecommitdiff
path: root/libmm-glib/mm-object.c
blob: ea92437034cebded6c48d1f3db98ce06a6a50648 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
/* -*- 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>
 */

#include "mm-object.h"

/**
 * mm_object_get_path:
 * @self: A #MMObject.
 *
 * Gets the DBus path of the #MMObject object.
 *
 * Returns: (transfer none): The DBus path of the #MMObject object.
 */
const gchar *
mm_object_get_path (MMObject *self)
{
    g_return_val_if_fail (G_IS_DBUS_OBJECT (self), NULL);

    return g_dbus_object_get_object_path (G_DBUS_OBJECT (self));
}

/**
 * mm_object_dup_path:
 * @self: A #MMObject.
 *
 * Gets a copy of the DBus path of the #MMObject object.
 *
 * Returns: (transfer full): The DBus path of the #MMObject. The returned value should be freed with g_free().
 */
gchar *
mm_object_dup_path (MMObject *self)
{
    gchar *value;

    g_return_val_if_fail (G_IS_DBUS_OBJECT_PROXY (self), NULL);

    g_object_get (G_OBJECT (self),
                  "g-object-path", &value,
                  NULL);

    return value;
}

/**
 * mm_object_get_modem:
 * @object: A #MMModem
 *
 * Gets the #MMModem instance for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-ModemManager1-Modem.top_of_page">org.freedesktop.ModemManager1.Modem</link> on @object, if any.
 *
 * Returns: (transfer full): A #MMModem that must be freed with g_object_unref() or %NULL if @object does not implement the interface.
 */
MMModem *
mm_object_get_modem (MMObject *object)
{
    g_return_val_if_fail (MM_GDBUS_IS_OBJECT (object), NULL);

    return mm_gdbus_object_get_modem (object);
}

/**
 * mm_object_get_modem_3gpp:
 * @object: A #MMObject.
 *
 * Gets the #MMModem3gpp instance for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-ModemManager1-Modem-Modem3gpp.top_of_page">org.freedesktop.ModemManager1.Modem.Modem3gpp</link> on @object, if any.
 *
 * Returns: (transfer full): A #MMModem3gpp that must be freed with g_object_unref() or %NULL if @object does not implement the interface.
 */
MMModem3gpp *
mm_object_get_modem_3gpp (MMObject *object)
{
    g_return_val_if_fail (MM_GDBUS_IS_OBJECT (object), NULL);

    return mm_gdbus_object_get_modem3gpp (object);
}

/**
 * mm_object_get_modem_cdma:
 * @object: A #MMObject.
 *
 * Gets the #MMModemCdma instance for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-ModemManager1-Modem-ModemCdma.top_of_page">org.freedesktop.ModemManager1.Modem.ModemCdma</link> on @object, if any.
 *
 * Returns: (transfer full): A #MMModemCdma that must be freed with g_object_unref() or %NULL if @object does not implement the interface.
 */
MMModemCdma *
mm_object_get_modem_cdma (MMObject *object)
{
    g_return_val_if_fail (MM_GDBUS_IS_OBJECT (object), NULL);

    return mm_gdbus_object_get_modem_cdma (object);
}

/**
 * mm_object_get_modem_simple:
 * @object: A #MMObject.
 *
 * Gets the #MMModemSimple instance for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-ModemManager1-Modem-Modemsimple.top_of_page">org.freedesktop.ModemManager1.Modem.Modemsimple</link> on @object, if any.
 *
 * Returns: (transfer full): A #MMModemSimple that must be freed with g_object_unref() or %NULL if @object does not implement the interface.
 */
MMModemSimple *
mm_object_get_modem_simple (MMObject *object)
{
    g_return_val_if_fail (MM_GDBUS_IS_OBJECT (object), NULL);

    return mm_gdbus_object_get_modem_simple (object);
}

/**
 * mm_object_peek_modem: (skip)
 * @object: A #MMObject.
 *
 * Like mm_object_get_modem() but doesn't increase the reference count on the returned object.
 *
 * <warning>It is not safe to use the returned object if you are on another thread than the one where the #MMManager is running.</warning>
 *
 * Returns: (transfer none): A #MMModem or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object.
 */
MMModem *
mm_object_peek_modem (MMObject *object)
{
    g_return_val_if_fail (MM_GDBUS_IS_OBJECT (object), NULL);

    return mm_gdbus_object_peek_modem (object);
}

/**
 * mm_object_peek_modem_3gpp: (skip)
 * @object: A #MMObject.
 *
 * Like mm_object_get_modem_3gpp() but doesn't increase the reference count on the returned object.
 *
 * <warning>It is not safe to use the returned object if you are on another thread than the one where the #MMManager is running.</warning>
 *
 * Returns: (transfer none): A #MMModem3gpp or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object.
 */
MMModem3gpp *
mm_object_peek_modem_3gpp (MMObject *object)
{
    g_return_val_if_fail (MM_GDBUS_IS_OBJECT (object), NULL);

    return mm_gdbus_object_peek_modem3gpp (object);
}

/**
 * mm_object_peek_modem_simple: (skip)
 * @object: A #MMObject.
 *
 * Like mm_object_get_modem_simple() but doesn't increase the reference count on the returned object.
 *
 * <warning>It is not safe to use the returned object if you are on another thread than the one where the #MMManager is running.</warning>
 *
 * Returns: (transfer none): A #MMModemSimple or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object.
 */
MMModemSimple *
mm_object_peek_modem_simple (MMObject *object)
{
    g_return_val_if_fail (MM_GDBUS_IS_OBJECT (object), NULL);

    return mm_gdbus_object_peek_modem_simple (object);
}