34
34
#include "nm-device-private.h"
35
35
#include "nm-object-private.h"
37
#include "nm-device-infiniband-bindings.h"
39
37
G_DEFINE_TYPE (NMDeviceInfiniband, nm_device_infiniband, NM_TYPE_DEVICE)
41
39
#define NM_DEVICE_INFINIBAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_INFINIBAND, NMDeviceInfinibandPrivate))
72
69
nm_device_infiniband_new (DBusGConnection *connection, const char *path)
74
73
g_return_val_if_fail (connection != NULL, NULL);
75
74
g_return_val_if_fail (path != NULL, NULL);
77
return g_object_new (NM_TYPE_DEVICE_INFINIBAND,
78
NM_OBJECT_DBUS_CONNECTION, connection,
79
NM_OBJECT_DBUS_PATH, path,
76
device = g_object_new (NM_TYPE_DEVICE_INFINIBAND,
77
NM_OBJECT_DBUS_CONNECTION, connection,
78
NM_OBJECT_DBUS_PATH, path,
80
_nm_object_ensure_inited (NM_OBJECT (device));
93
94
nm_device_infiniband_get_hw_address (NMDeviceInfiniband *device)
95
NMDeviceInfinibandPrivate *priv;
97
96
g_return_val_if_fail (NM_IS_DEVICE_INFINIBAND (device), NULL);
99
priv = NM_DEVICE_INFINIBAND_GET_PRIVATE (device);
100
if (!priv->hw_address) {
101
priv->hw_address = _nm_object_get_string_property (NM_OBJECT (device),
102
NM_DBUS_INTERFACE_DEVICE_INFINIBAND,
103
DBUS_PROP_HW_ADDRESS,
107
return priv->hw_address;
98
_nm_object_ensure_inited (NM_OBJECT (device));
99
return NM_DEVICE_INFINIBAND_GET_PRIVATE (device)->hw_address;
119
111
nm_device_infiniband_get_carrier (NMDeviceInfiniband *device)
121
NMDeviceInfinibandPrivate *priv;
123
113
g_return_val_if_fail (NM_IS_DEVICE_INFINIBAND (device), FALSE);
125
priv = NM_DEVICE_INFINIBAND_GET_PRIVATE (device);
126
if (!priv->carrier_valid) {
127
priv->carrier = _nm_object_get_boolean_property (NM_OBJECT (device),
128
NM_DBUS_INTERFACE_DEVICE_INFINIBAND,
131
priv->carrier_valid = TRUE;
134
return priv->carrier;
115
_nm_object_ensure_inited (NM_OBJECT (device));
116
return NM_DEVICE_INFINIBAND_GET_PRIVATE (device)->carrier;
173
155
NMDeviceInfinibandPrivate *priv = NM_DEVICE_INFINIBAND_GET_PRIVATE (device);
175
157
priv->carrier = FALSE;
176
priv->carrier_valid = FALSE;
180
register_for_property_changed (NMDeviceInfiniband *device)
161
register_properties (NMDeviceInfiniband *device)
182
163
NMDeviceInfinibandPrivate *priv = NM_DEVICE_INFINIBAND_GET_PRIVATE (device);
183
const NMPropertiesChangedInfo property_changed_info[] = {
184
{ NM_DEVICE_INFINIBAND_HW_ADDRESS, _nm_object_demarshal_generic, &priv->hw_address },
185
{ NM_DEVICE_INFINIBAND_CARRIER, _nm_object_demarshal_generic, &priv->carrier },
164
const NMPropertiesInfo property_info[] = {
165
{ NM_DEVICE_INFINIBAND_HW_ADDRESS, &priv->hw_address },
166
{ NM_DEVICE_INFINIBAND_CARRIER, &priv->carrier },
189
_nm_object_handle_properties_changed (NM_OBJECT (device),
191
property_changed_info);
170
_nm_object_register_properties (NM_OBJECT (device),
195
constructor (GType type,
196
guint n_construct_params,
197
GObjectConstructParam *construct_params)
176
constructed (GObject *object)
200
178
NMDeviceInfinibandPrivate *priv;
202
object = G_OBJECT_CLASS (nm_device_infiniband_parent_class)->constructor (type,
180
G_OBJECT_CLASS (nm_device_infiniband_parent_class)->constructed (object);
208
182
priv = NM_DEVICE_INFINIBAND_GET_PRIVATE (object);
212
186
nm_object_get_path (NM_OBJECT (object)),
213
187
NM_DBUS_INTERFACE_DEVICE_INFINIBAND);
215
register_for_property_changed (NM_DEVICE_INFINIBAND (object));
189
register_properties (NM_DEVICE_INFINIBAND (object));
270
242
g_type_class_add_private (eth_class, sizeof (NMDeviceInfinibandPrivate));
272
244
/* virtual methods */
273
object_class->constructor = constructor;
245
object_class->constructed = constructed;
274
246
object_class->dispose = dispose;
275
247
object_class->finalize = finalize;
276
248
object_class->get_property = get_property;