modem-manager: consolidate capabilities loading

Make capabilities loading a method in the NMModem class, and let subclasses
implement it.
This commit is contained in:
Aleksander Morgado 2013-06-03 11:26:13 +02:00 committed by Dan Williams
parent e071cb962e
commit 0477becfae
7 changed files with 40 additions and 23 deletions

View file

@ -337,22 +337,18 @@ nm_device_modem_new (NMModem *modem, const char *driver)
{
NMDeviceModemCapabilities caps = NM_DEVICE_MODEM_CAPABILITY_NONE;
NMDeviceModemCapabilities current_caps = NM_DEVICE_MODEM_CAPABILITY_NONE;
const gchar *type_desc = NULL;
const gchar *ip_iface = NULL;
g_return_val_if_fail (NM_IS_MODEM (modem), NULL);
g_return_val_if_fail (driver != NULL, NULL);
if (NM_IS_MODEM_OLD (modem)) {
nm_modem_old_get_capabilities (NM_MODEM_OLD (modem), &caps, &current_caps);
type_desc = "Broadband";
ip_iface = nm_modem_get_data_port (modem);
}
#if WITH_MODEM_MANAGER_1
else if (NM_IS_MODEM_BROADBAND (modem)) {
nm_modem_broadband_get_capabilities (NM_MODEM_BROADBAND (modem), &caps, &current_caps);
type_desc = "Broadband";
/* data port not yet known in broadband modems */
/* In ModemManager1 modems, data port is not yet known */
ip_iface = NULL;
}
#endif
else {
@ -360,12 +356,15 @@ nm_device_modem_new (NMModem *modem, const char *driver)
return NULL;
}
/* Load capabilities */
nm_modem_get_capabilities (modem, &caps, &current_caps);
return (NMDevice *) g_object_new (NM_TYPE_DEVICE_MODEM,
NM_DEVICE_UDI, nm_modem_get_path (modem),
NM_DEVICE_IFACE, nm_modem_get_uid (modem),
NM_DEVICE_IP_IFACE, ip_iface,
NM_DEVICE_DRIVER, driver,
NM_DEVICE_TYPE_DESC, type_desc,
NM_DEVICE_TYPE_DESC, "Broadband",
NM_DEVICE_DEVICE_TYPE, NM_DEVICE_TYPE_MODEM,
NM_DEVICE_RFKILL_TYPE, RFKILL_TYPE_WWAN,
NM_DEVICE_MODEM_MODEM, modem,

View file

@ -100,11 +100,13 @@ translate_mm_error (GError *error)
/*****************************************************************************/
void
nm_modem_broadband_get_capabilities (NMModemBroadband *self,
NMDeviceModemCapabilities *modem_caps,
NMDeviceModemCapabilities *current_caps)
static void
get_capabilities (NMModem *_self,
NMDeviceModemCapabilities *modem_caps,
NMDeviceModemCapabilities *current_caps)
{
NMModemBroadband *self = NM_MODEM_BROADBAND (_self);
*modem_caps = (NMDeviceModemCapabilities)mm_modem_get_modem_capabilities (self->priv->modem_iface);
*current_caps = (NMDeviceModemCapabilities)mm_modem_get_current_capabilities (self->priv->modem_iface);
}
@ -945,6 +947,7 @@ nm_modem_broadband_class_init (NMModemBroadbandClass *klass)
object_class->get_property = get_property;
object_class->set_property = set_property;
modem_class->get_capabilities = get_capabilities;
modem_class->static_stage3_ip4_config_start = static_stage3_ip4_config_start;
modem_class->disconnect = disconnect;
modem_class->deactivate = deactivate;

View file

@ -53,10 +53,6 @@ GType nm_modem_broadband_get_type (void);
NMModem *nm_modem_broadband_new (GObject *object);
void nm_modem_broadband_get_capabilities (NMModemBroadband *self,
NMDeviceModemCapabilities *modem_caps,
NMDeviceModemCapabilities *current_caps);
G_END_DECLS
#endif /* NM_MODEM_BROADBAND_H */

View file

@ -958,11 +958,13 @@ get_user_pass (NMModem *modem,
/*****************************************************************************/
void
nm_modem_old_get_capabilities (NMModemOld *self,
NMDeviceModemCapabilities *modem_caps,
NMDeviceModemCapabilities *current_caps)
static void
get_capabilities (NMModem *_self,
NMDeviceModemCapabilities *modem_caps,
NMDeviceModemCapabilities *current_caps)
{
NMModemOld *self = NM_MODEM_OLD (_self);
*current_caps = *modem_caps = NM_MODEM_OLD_GET_PRIVATE (self)->caps;
}
@ -1138,6 +1140,7 @@ nm_modem_old_class_init (NMModemOldClass *klass)
object_class->constructor = constructor;
object_class->dispose = dispose;
modem_class->get_capabilities = get_capabilities;
modem_class->get_user_pass = get_user_pass;
modem_class->complete_connection = complete_connection;
modem_class->check_connection_compatible = check_connection_compatible;

View file

@ -48,10 +48,6 @@ GType nm_modem_old_get_type (void);
NMModem *nm_modem_old_new (const char *path, GHashTable *properties, GError **error);
void nm_modem_old_get_capabilities (NMModemOld *self,
NMDeviceModemCapabilities *modem_caps,
NMDeviceModemCapabilities *current_caps);
/* Protected */
DBusGProxy *nm_modem_old_get_proxy (NMModemOld *modem, const gchar *interface);

View file

@ -666,6 +666,18 @@ nm_modem_get_data_port (NMModem *self)
/*****************************************************************************/
void
nm_modem_get_capabilities (NMModem *self,
NMDeviceModemCapabilities *modem_caps,
NMDeviceModemCapabilities *current_caps)
{
g_return_if_fail (NM_IS_MODEM (self));
NM_MODEM_GET_CLASS (self)->get_capabilities (self, modem_caps, current_caps);
}
/*****************************************************************************/
static void
nm_modem_init (NMModem *self)
{

View file

@ -76,6 +76,10 @@ typedef struct {
typedef struct {
GObjectClass parent;
void (*get_capabilities) (NMModem *self,
NMDeviceModemCapabilities *modem_caps,
NMDeviceModemCapabilities *current_caps);
gboolean (*get_user_pass) (NMModem *modem,
NMConnection *connection,
const char **user,
@ -125,6 +129,10 @@ const char *nm_modem_get_control_port (NMModem *modem);
const char *nm_modem_get_data_port (NMModem *modem);
const char *nm_modem_get_driver (NMModem *modem);
void nm_modem_get_capabilities (NMModem *self,
NMDeviceModemCapabilities *modem_caps,
NMDeviceModemCapabilities *current_caps);
gboolean nm_modem_check_connection_compatible (NMModem *self,
NMConnection *connection,
GError **error);