2
#include "nm-device-private.h"
4
#include "nm-device-bindings.h"
6
G_DEFINE_TYPE (NMDevice, nm_device, DBUS_TYPE_G_PROXY)
14
static guint signals[LAST_SIGNAL] = { 0 };
16
static void device_state_change_proxy (DBusGProxy *proxy, guint state, gpointer user_data);
19
nm_device_init (NMDevice *device)
24
constructor (GType type,
25
guint n_construct_params,
26
GObjectConstructParam *construct_params)
30
object = G_OBJECT_CLASS (nm_device_parent_class)->constructor (type,
37
dbus_g_proxy_add_signal (DBUS_G_PROXY (object), "StateChanged", G_TYPE_UINT, G_TYPE_INVALID);
38
dbus_g_proxy_connect_signal (DBUS_G_PROXY (object),
40
G_CALLBACK (device_state_change_proxy),
47
nm_device_class_init (NMDeviceClass *device_class)
49
GObjectClass *object_class = G_OBJECT_CLASS (device_class);
52
object_class->constructor = constructor;
55
signals[STATE_CHANGED] =
56
g_signal_new ("state-changed",
57
G_OBJECT_CLASS_TYPE (object_class),
59
G_STRUCT_OFFSET (NMDeviceClass, state_changed),
61
g_cclosure_marshal_VOID__UINT,
68
device_state_change_proxy (DBusGProxy *proxy, guint state, gpointer user_data)
70
NMDevice *device = NM_DEVICE (user_data);
72
g_signal_emit (device, signals[STATE_CHANGED], 0, state);
76
nm_device_new (DBusGConnection *connection, const char *path)
78
return (NMDevice *) g_object_new (NM_TYPE_DEVICE,
79
"name", NM_DBUS_SERVICE,
81
"interface", NM_DBUS_INTERFACE_DEVICE,
82
"connection", connection,
87
nm_device_deactivate (NMDevice *device)
91
g_return_if_fail (NM_IS_DEVICE (device));
93
if (!org_freedesktop_NetworkManager_Device_deactivate (DBUS_G_PROXY (device), &err)) {
94
g_warning ("Cannot deactivate device: %s", err->message);
100
nm_device_get_iface (NMDevice *device)
105
g_return_val_if_fail (NM_IS_DEVICE (device), NULL);
107
if (nm_dbus_get_property (DBUS_G_PROXY (device),
108
NM_DBUS_INTERFACE_DEVICE,
111
iface = g_strdup (g_value_get_string (&value));
117
nm_device_get_udi (NMDevice *device)
122
g_return_val_if_fail (NM_IS_DEVICE (device), NULL);
124
if (nm_dbus_get_property (DBUS_G_PROXY (device),
125
NM_DBUS_INTERFACE_DEVICE,
128
udi = g_strdup (g_value_get_string (&value));
134
nm_device_get_driver (NMDevice *device)
139
g_return_val_if_fail (NM_IS_DEVICE (device), NULL);
141
if (nm_dbus_get_property (DBUS_G_PROXY (device),
142
NM_DBUS_INTERFACE_DEVICE,
145
driver = g_strdup (g_value_get_string (&value));
151
nm_device_get_use_dhcp (NMDevice *device)
153
gboolean dhcp = FALSE;
156
g_return_val_if_fail (NM_IS_DEVICE (device), FALSE);
158
if (nm_dbus_get_property (DBUS_G_PROXY (device),
159
NM_DBUS_INTERFACE_DEVICE,
162
dhcp = g_value_get_boolean (&value);
168
nm_device_get_ip4_address (NMDevice *device)
173
g_return_val_if_fail (NM_IS_DEVICE (device), 0);
175
if (nm_dbus_get_property (DBUS_G_PROXY (device),
176
NM_DBUS_INTERFACE_DEVICE,
179
address = g_value_get_uint (&value);
185
nm_device_get_state (NMDevice *device)
187
NMDeviceState state = NM_DEVICE_STATE_UNKNOWN;
190
g_return_val_if_fail (NM_IS_DEVICE (device), 0);
192
if (nm_dbus_get_property (DBUS_G_PROXY (device),
193
NM_DBUS_INTERFACE_DEVICE,
196
state = g_value_get_uint (&value);
202
nm_device_type_for_path (DBusGConnection *connection,
207
NMDeviceType type = DEVICE_TYPE_UNKNOWN;
209
g_return_val_if_fail (connection != NULL, type);
210
g_return_val_if_fail (path != NULL, type);
212
proxy = dbus_g_proxy_new_for_name (connection,
215
NM_DBUS_INTERFACE_DEVICE);
217
if (nm_dbus_get_property (proxy,
218
NM_DBUS_INTERFACE_DEVICE,
221
type = (NMDeviceType) g_value_get_uint (&value);
223
g_object_unref (proxy);