[liboobs] Remove old singleton logic in OobsObject



commit cf1ce188d728f8144ebaf3f88bb96e9280a19219
Author: Milan Bouchet-Valat <nalimilan club fr>
Date:   Sat Feb 13 22:57:26 2010 +0100

    Remove old singleton logic in OobsObject
    
    Since we now use two different kinds of OobsObjects, singletons are better handled at the inherited class level. (Ironically, this was what was originally done before 2007.)

 oobs/oobs-group.c   |    3 ---
 oobs/oobs-object.c  |   25 +------------------------
 oobs/oobs-object.h  |    3 ---
 oobs/oobs-service.c |    3 ---
 oobs/oobs-user.c    |    3 ---
 5 files changed, 1 insertions(+), 36 deletions(-)
---
diff --git a/oobs/oobs-group.c b/oobs/oobs-group.c
index c626458..6bb147b 100644
--- a/oobs/oobs-group.c
+++ b/oobs/oobs-group.c
@@ -104,9 +104,6 @@ oobs_group_class_init (OobsGroupClass *class)
   oobs_class->update = oobs_group_update;
   oobs_class->get_update_message = oobs_group_get_update_message;
 
-  /* override the singleton check */
-  oobs_class->singleton = FALSE;
-
   g_object_class_install_property (object_class,
 				   PROP_GROUPNAME,
 				   g_param_spec_string ("name",
diff --git a/oobs/oobs-object.c b/oobs/oobs-object.c
index 34273b7..0e36882 100644
--- a/oobs/oobs-object.c
+++ b/oobs/oobs-object.c
@@ -123,9 +123,6 @@ oobs_object_class_init (OobsObjectClass *class)
   object_class->set_property = oobs_object_set_property;
   object_class->finalize     = oobs_object_finalize;
 
-  /* some object types don't need to be singletons, they override this */
-  class->singleton = TRUE;
-
   dbus_connection_quark = g_quark_from_static_string ("oobs-dbus-connection");
 
   g_object_class_install_property (object_class,
@@ -212,32 +209,12 @@ oobs_object_constructor (GType                  type,
 			 guint                  n_construct_properties,
 			 GObjectConstructParam *construct_params)
 {
-  OobsObjectClass *class;
-  static GHashTable *type_table;
   GObject *object;
 
-  /* some objects that inherit from OobsObject have to be
-   * singletons, keep a hash table with references to them
-   */
-  if (!type_table)
-    type_table = g_hash_table_new (g_direct_hash, g_direct_equal);
-
-  object = g_hash_table_lookup (type_table, GINT_TO_POINTER (type));
-
-  if (object)
-    {
-      class = OOBS_OBJECT_GET_CLASS (object);
-
-      /* if has to be singleton and exists, return it */
-      if (class->singleton)
-	return object;
-    }
-
-  /* this class should not be limited to singletons, create (possibly new) object anyway */
   object = (* G_OBJECT_CLASS (oobs_object_parent_class)->constructor) (type,
                                                                        n_construct_properties,
                                                                        construct_params);
-  g_hash_table_insert (type_table, GINT_TO_POINTER (type), object);
+
   connect_object_to_session (OOBS_OBJECT (object));
 
   return object;
diff --git a/oobs/oobs-object.h b/oobs/oobs-object.h
index 8ec2359..d1524bc 100644
--- a/oobs/oobs-object.h
+++ b/oobs/oobs-object.h
@@ -59,9 +59,6 @@ struct _OobsObjectClass
   void (*committed) (OobsObject *object);
   void (*changed)   (OobsObject *object);
 
-  /* variables */
-  gboolean singleton;
-
   void (*_oobs_padding1) (void);
   void (*_oobs_padding2) (void);
 };
diff --git a/oobs/oobs-service.c b/oobs/oobs-service.c
index 4b61150..d9317f9 100644
--- a/oobs/oobs-service.c
+++ b/oobs/oobs-service.c
@@ -89,9 +89,6 @@ oobs_service_class_init (OobsServiceClass *class)
   oobs_object_class->update              = oobs_service_update;
   oobs_object_class->get_update_message  = oobs_service_get_update_message;
 
-  /* override the singleton check */
-  oobs_object_class->singleton = FALSE;
-
   g_object_class_install_property (object_class,
 				   PROP_NAME,
 				   g_param_spec_string ("name",
diff --git a/oobs/oobs-user.c b/oobs/oobs-user.c
index a0e2b34..16338ee 100644
--- a/oobs/oobs-user.c
+++ b/oobs/oobs-user.c
@@ -128,9 +128,6 @@ oobs_user_class_init (OobsUserClass *class)
   oobs_class->update = oobs_user_update;
   oobs_class->get_update_message = oobs_user_get_update_message;
 
-  /* override the singleton check */
-  oobs_class->singleton = FALSE;
-
   g_object_class_install_property (object_class,
 				   PROP_USERNAME,
 				   g_param_spec_string ("name",



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]