modem: make NMModemManager a singleton

Singletons are not entirely bad, if used carefully. We will need
the singleton from bluetooth plugin.
This commit is contained in:
Thomas Haller 2017-04-22 10:58:14 +02:00
parent ce1ae5f458
commit a087278e8e
3 changed files with 8 additions and 2 deletions

View file

@ -97,6 +97,10 @@ G_DEFINE_TYPE (NMModemManager, nm_modem_manager, G_TYPE_OBJECT)
/*****************************************************************************/
NM_DEFINE_SINGLETON_GETTER (NMModemManager, nm_modem_manager_get, NM_TYPE_MODEM_MANAGER);
/*****************************************************************************/
static void modm_schedule_manager_relaunch (NMModemManager *self,
guint n_seconds);
static void modm_ensure_manager (NMModemManager *self);

View file

@ -43,4 +43,6 @@ typedef struct _NMModemManagerClass NMModemManagerClass;
GType nm_modem_manager_get_type (void);
NMModemManager *nm_modem_manager_get (void);
#endif /* __NETWORKMANAGER_MODEM_MANAGER_H__ */

View file

@ -127,8 +127,8 @@ start (NMDeviceFactory *factory)
NMWwanFactory *self = NM_WWAN_FACTORY (factory);
NMWwanFactoryPrivate *priv = NM_WWAN_FACTORY_GET_PRIVATE (self);
priv->mm = g_object_new (NM_TYPE_MODEM_MANAGER, NULL);
g_assert (priv->mm);
priv->mm = g_object_ref (nm_modem_manager_get ());
g_signal_connect (priv->mm,
NM_MODEM_MANAGER_MODEM_ADDED,
G_CALLBACK (modem_added_cb),