33
33
#include "nm-device-private.h"
34
34
#include "nm-object-private.h"
36
#include "nm-device-ethernet-bindings.h"
38
36
G_DEFINE_TYPE (NMDeviceEthernet, nm_device_ethernet, NM_TYPE_DEVICE)
40
38
#define NM_DEVICE_ETHERNET_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_ETHERNET, NMDeviceEthernetPrivate))
79
76
nm_device_ethernet_new (DBusGConnection *connection, const char *path)
81
80
g_return_val_if_fail (connection != NULL, NULL);
82
81
g_return_val_if_fail (path != NULL, NULL);
84
return g_object_new (NM_TYPE_DEVICE_ETHERNET,
85
NM_OBJECT_DBUS_CONNECTION, connection,
86
NM_OBJECT_DBUS_PATH, path,
83
device = g_object_new (NM_TYPE_DEVICE_ETHERNET,
84
NM_OBJECT_DBUS_CONNECTION, connection,
85
NM_OBJECT_DBUS_PATH, path,
87
_nm_object_ensure_inited (NM_OBJECT (device));
100
101
nm_device_ethernet_get_hw_address (NMDeviceEthernet *device)
102
NMDeviceEthernetPrivate *priv;
104
103
g_return_val_if_fail (NM_IS_DEVICE_ETHERNET (device), NULL);
106
priv = NM_DEVICE_ETHERNET_GET_PRIVATE (device);
107
if (!priv->hw_address) {
108
priv->hw_address = _nm_object_get_string_property (NM_OBJECT (device),
109
NM_DBUS_INTERFACE_DEVICE_WIRED,
110
DBUS_PROP_HW_ADDRESS,
114
return priv->hw_address;
105
_nm_object_ensure_inited (NM_OBJECT (device));
106
return NM_DEVICE_ETHERNET_GET_PRIVATE (device)->hw_address;
127
119
nm_device_ethernet_get_permanent_hw_address (NMDeviceEthernet *device)
129
NMDeviceEthernetPrivate *priv;
131
121
g_return_val_if_fail (NM_IS_DEVICE_ETHERNET (device), NULL);
133
priv = NM_DEVICE_ETHERNET_GET_PRIVATE (device);
134
if (!priv->perm_hw_address) {
135
priv->perm_hw_address = _nm_object_get_string_property (NM_OBJECT (device),
136
NM_DBUS_INTERFACE_DEVICE_WIRED,
137
DBUS_PROP_PERM_HW_ADDRESS,
141
return priv->perm_hw_address;
123
_nm_object_ensure_inited (NM_OBJECT (device));
124
return NM_DEVICE_ETHERNET_GET_PRIVATE (device)->perm_hw_address;
153
136
nm_device_ethernet_get_speed (NMDeviceEthernet *device)
155
NMDeviceEthernetPrivate *priv;
157
138
g_return_val_if_fail (NM_IS_DEVICE_ETHERNET (device), 0);
159
priv = NM_DEVICE_ETHERNET_GET_PRIVATE (device);
161
priv->speed = _nm_object_get_uint_property (NM_OBJECT (device),
162
NM_DBUS_INTERFACE_DEVICE_WIRED,
140
_nm_object_ensure_inited (NM_OBJECT (device));
141
return NM_DEVICE_ETHERNET_GET_PRIVATE (device)->speed;
179
153
nm_device_ethernet_get_carrier (NMDeviceEthernet *device)
181
NMDeviceEthernetPrivate *priv;
183
155
g_return_val_if_fail (NM_IS_DEVICE_ETHERNET (device), FALSE);
185
priv = NM_DEVICE_ETHERNET_GET_PRIVATE (device);
186
if (!priv->carrier_valid) {
187
priv->carrier = _nm_object_get_boolean_property (NM_OBJECT (device),
188
NM_DBUS_INTERFACE_DEVICE_WIRED,
191
priv->carrier_valid = TRUE;
194
return priv->carrier;
157
_nm_object_ensure_inited (NM_OBJECT (device));
158
return NM_DEVICE_ETHERNET_GET_PRIVATE (device)->carrier;
246
210
priv->disposed = FALSE;
247
211
priv->carrier = FALSE;
248
priv->carrier_valid = FALSE;
252
register_for_property_changed (NMDeviceEthernet *device)
215
register_properties (NMDeviceEthernet *device)
254
217
NMDeviceEthernetPrivate *priv = NM_DEVICE_ETHERNET_GET_PRIVATE (device);
255
const NMPropertiesChangedInfo property_changed_info[] = {
256
{ NM_DEVICE_ETHERNET_HW_ADDRESS, _nm_object_demarshal_generic, &priv->hw_address },
257
{ NM_DEVICE_ETHERNET_PERMANENT_HW_ADDRESS, _nm_object_demarshal_generic, &priv->perm_hw_address },
258
{ NM_DEVICE_ETHERNET_SPEED, _nm_object_demarshal_generic, &priv->speed },
259
{ NM_DEVICE_ETHERNET_CARRIER, _nm_object_demarshal_generic, &priv->carrier },
218
const NMPropertiesInfo property_info[] = {
219
{ NM_DEVICE_ETHERNET_HW_ADDRESS, &priv->hw_address },
220
{ NM_DEVICE_ETHERNET_PERMANENT_HW_ADDRESS, &priv->perm_hw_address },
221
{ NM_DEVICE_ETHERNET_SPEED, &priv->speed },
222
{ NM_DEVICE_ETHERNET_CARRIER, &priv->carrier },
263
_nm_object_handle_properties_changed (NM_OBJECT (device),
265
property_changed_info);
226
_nm_object_register_properties (NM_OBJECT (device),
269
constructor (GType type,
270
guint n_construct_params,
271
GObjectConstructParam *construct_params)
232
constructed (GObject *object)
274
234
NMDeviceEthernetPrivate *priv;
276
object = G_OBJECT_CLASS (nm_device_ethernet_parent_class)->constructor (type,
236
G_OBJECT_CLASS (nm_device_ethernet_parent_class)->constructed (object);
282
238
priv = NM_DEVICE_ETHERNET_GET_PRIVATE (object);
286
242
nm_object_get_path (NM_OBJECT (object)),
287
243
NM_DBUS_INTERFACE_DEVICE_WIRED);
289
register_for_property_changed (NM_DEVICE_ETHERNET (object));
245
register_properties (NM_DEVICE_ETHERNET (object));
355
309
g_type_class_add_private (eth_class, sizeof (NMDeviceEthernetPrivate));
357
311
/* virtual methods */
358
object_class->constructor = constructor;
312
object_class->constructed = constructed;
359
313
object_class->dispose = dispose;
360
314
object_class->finalize = finalize;
361
315
object_class->get_property = get_property;