2008-08-04 Dan Williams <dcbw@redhat.com>

Patch from Sjoerd Simons <sjoerd.simons@collabora.co.uk>

	* src/NetworkManager.c
	  src/nm-manager.c
	  src/nm-manager.h
		- More explicitly make the NMManager a singleton



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3896 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
This commit is contained in:
Dan Williams 2008-08-04 22:24:58 +00:00
parent fb74207755
commit 2f3820c624
4 changed files with 29 additions and 15 deletions

View file

@ -1,3 +1,12 @@
2008-08-04 Dan Williams <dcbw@redhat.com>
Patch from Sjoerd Simons <sjoerd.simons@collabora.co.uk>
* src/NetworkManager.c
src/nm-manager.c
src/nm-manager.h
- More explicitly make the NMManager a singleton
2008-08-04 Dan Williams <dcbw@redhat.com>
* libnm-util/nm-connection.c

View file

@ -303,7 +303,7 @@ main (int argc, char *argv[])
goto done;
}
manager = nm_manager_new ();
manager = nm_manager_get ();
if (manager == NULL) {
nm_error ("Failed to initialize the network manager.");
goto done;

View file

@ -1353,49 +1353,54 @@ deferred_sync_devices (gpointer user_data)
}
NMManager *
nm_manager_new (void)
nm_manager_get (void)
{
GObject *object;
static NMManager *singleton = NULL;
NMManagerPrivate *priv;
object = g_object_new (NM_TYPE_MANAGER, NULL);
priv = NM_MANAGER_GET_PRIVATE (object);
if (singleton)
return g_object_ref (singleton);
singleton = (NMManager *) g_object_new (NM_TYPE_MANAGER, NULL);
g_assert (singleton);
priv = NM_MANAGER_GET_PRIVATE (singleton);
dbus_g_connection_register_g_object (nm_dbus_manager_get_connection (priv->dbus_mgr),
NM_DBUS_PATH,
object);
G_OBJECT (singleton));
g_signal_connect (priv->dbus_mgr,
"name-owner-changed",
G_CALLBACK (nm_manager_name_owner_changed),
NM_MANAGER (object));
singleton);
g_idle_add ((GSourceFunc) initial_get_connections, NM_MANAGER (object));
g_idle_add ((GSourceFunc) initial_get_connections, singleton);
priv->hal_mgr = nm_hal_manager_new ();
priv->sync_devices_id = g_idle_add (deferred_sync_devices, object);
priv->sync_devices_id = g_idle_add (deferred_sync_devices, singleton);
g_signal_connect (priv->hal_mgr,
"udi-added",
G_CALLBACK (hal_manager_udi_added_cb),
NM_MANAGER (object));
singleton);
g_signal_connect (priv->hal_mgr,
"udi-removed",
G_CALLBACK (hal_manager_udi_removed_cb),
NM_MANAGER (object));
singleton);
g_signal_connect (priv->hal_mgr,
"rfkill-changed",
G_CALLBACK (hal_manager_rfkill_changed_cb),
NM_MANAGER (object));
singleton);
g_signal_connect (priv->hal_mgr,
"hal-reappeared",
G_CALLBACK (hal_manager_hal_reappeared_cb),
NM_MANAGER (object));
singleton);
return NM_MANAGER (object);
return singleton;
}
static void

View file

@ -52,7 +52,7 @@ typedef struct {
GType nm_manager_get_type (void);
NMManager *nm_manager_new (void);
NMManager *nm_manager_get (void);
/* Device handling */