[virt-tools-list] [PATCH 33/47] Make entity object fully private

Daniel P. Berrange berrange at redhat.com
Wed Aug 25 19:37:28 UTC 2010


Make the OsinfoEntityPrivate struct fully private to
the OsinfoEntity object.

* osinfo/osinfo_common.h: Remove OsinfoEntityPrivate
* osinfo/osinfo_entity.c: Add OsinfoEntityPrivate
* osinfo/osinfo_list.c: Use API instead of direct
  access to private data of OsinfoEntity objects
---
 osinfo/osinfo_common.h |    8 --------
 osinfo/osinfo_entity.c |    9 +++++++++
 osinfo/osinfo_list.c   |   18 +++++++-----------
 3 files changed, 16 insertions(+), 19 deletions(-)

diff --git a/osinfo/osinfo_common.h b/osinfo/osinfo_common.h
index 8726c41..9ea70f7 100644
--- a/osinfo/osinfo_common.h
+++ b/osinfo/osinfo_common.h
@@ -106,14 +106,6 @@ struct _OsinfoOsPrivate
     GList *osLinks;
 };
 
-struct _OsinfoEntityPrivate
-{
-    gchar *id;
-
-    // Key: gchar*
-    // Value: GList of gchar* values
-    GHashTable *params;
-};
 
 
 #endif /* __OSINFO_OBJECTS_H__ */
diff --git a/osinfo/osinfo_entity.c b/osinfo/osinfo_entity.c
index 3625a86..2bec761 100644
--- a/osinfo/osinfo_entity.c
+++ b/osinfo/osinfo_entity.c
@@ -4,6 +4,15 @@ G_DEFINE_ABSTRACT_TYPE (OsinfoEntity, osinfo_entity, G_TYPE_OBJECT);
 
 #define OSINFO_ENTITY_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), OSINFO_TYPE_ENTITY, OsinfoEntityPrivate))
 
+struct _OsinfoEntityPrivate
+{
+    gchar *id;
+
+    // Key: gchar*
+    // Value: GList of gchar* values
+    GHashTable *params;
+};
+
 static void osinfo_entity_finalize (GObject *object);
 
 enum OSI_ENTITY_PROPERTIES {
diff --git a/osinfo/osinfo_list.c b/osinfo/osinfo_list.c
index b5eed93..e21eebb 100644
--- a/osinfo/osinfo_list.c
+++ b/osinfo/osinfo_list.c
@@ -95,19 +95,17 @@ void osinfo_list_add_intersection(OsinfoList *self, OsinfoList *sourceOne, Osinf
     len = osinfo_list_get_length(sourceTwo);
     for (i = 0; i < len; i++) {
         OsinfoEntity *entity = osinfo_list_get_nth(sourceTwo, i);
-        gchar *id = entity->priv->id;
-        g_hash_table_insert(otherSet, id, entity);
+        g_hash_table_insert(otherSet, osinfo_entity_get_id(entity), entity);
     }
 
     // If other contains entity, and new list does not, add to new list
     len = osinfo_list_get_length(sourceOne);
     for (i = 0; i < len; i++) {
         OsinfoEntity *entity = osinfo_list_get_nth(sourceOne, i);
-        gchar *id = entity->priv->id;
 
-        if (g_hash_table_lookup(otherSet, entity->priv->id) &&
-            !g_hash_table_lookup(newSet, entity->priv->id)) {
-            g_hash_table_insert(newSet, id, entity);
+        if (g_hash_table_lookup(otherSet, osinfo_entity_get_id(entity)) &&
+            !g_hash_table_lookup(newSet, osinfo_entity_get_id(entity))) {
+	    g_hash_table_insert(newSet, osinfo_entity_get_id(entity), entity);
             osinfo_list_add(self, entity);
         }
     }
@@ -127,20 +125,18 @@ void osinfo_list_add_union(OsinfoList *self, OsinfoList *sourceOne, OsinfoList *
     len = osinfo_list_get_length(sourceTwo);
     for (i = 0; i < len; i++) {
         OsinfoEntity *entity = osinfo_list_get_nth(sourceTwo, i);
-        gchar *id = entity->priv->id;
         osinfo_list_add(self, entity);
-        g_hash_table_insert(newSet, id, entity);
+        g_hash_table_insert(newSet, osinfo_entity_get_id(entity), entity);
     }
 
     // Add remaining elements from this list to new list
     len = osinfo_list_get_length(sourceOne);
     for (i = 0; i < len; i++) {
         OsinfoEntity *entity = osinfo_list_get_nth(sourceOne, i);
-        gchar *id = entity->priv->id;
         // If new list does not contain element, add to new list
-        if (!g_hash_table_lookup(newSet, id)) {
+        if (!g_hash_table_lookup(newSet, osinfo_entity_get_id(entity))) {
 	    osinfo_list_add(self, entity);
-            g_hash_table_insert(newSet, id, entity);
+            g_hash_table_insert(newSet, osinfo_entity_get_id(entity), entity);
         }
     }
 
-- 
1.7.2.1




More information about the virt-tools-list mailing list