Make NMManager a singleton.
Signed-off-by: Sjoerd Simons <[EMAIL PROTECTED]>
---
src/NetworkManager.c | 2 +-
src/nm-manager.c | 7 +++++--
src/nm-manager.h | 2 +-
3 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/src/NetworkManager.c b/src/NetworkManager.c
index f6651de..9468c94 100644
--- a/src/NetworkManager.c
+++ b/src/NetworkManager.c
@@ -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;
diff --git a/src/nm-manager.c b/src/nm-manager.c
index 18b165a..0c497e8 100644
--- a/src/nm-manager.c
+++ b/src/nm-manager.c
@@ -1353,11 +1353,14 @@ deferred_sync_devices (gpointer user_data)
}
NMManager *
-nm_manager_new (void)
+nm_manager_get (void)
{
- GObject *object;
+ static GObject *object = NULL;
NMManagerPrivate *priv;
+ if (object != NULL)
+ return NM_MANAGER(g_object_ref(object));
+
object = g_object_new (NM_TYPE_MANAGER, NULL);
priv = NM_MANAGER_GET_PRIVATE (object);
diff --git a/src/nm-manager.h b/src/nm-manager.h
index fb53bdd..fd74432 100644
--- a/src/nm-manager.h
+++ b/src/nm-manager.h
@@ -52,7 +52,7 @@ typedef struct {
GType nm_manager_get_type (void);
-NMManager *nm_manager_new (void);
+NMManager *nm_manager_get (void);
/* Device handling */
--
1.5.6.3
_______________________________________________
NetworkManager-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/networkmanager-list