[libgda] GdaSet: use G_DEFINE_TYPE_WITH_PRIVATE macro
- From: Daniel Espinosa Ortiz <despinosa src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libgda] GdaSet: use G_DEFINE_TYPE_WITH_PRIVATE macro
- Date: Tue, 14 Aug 2018 00:28:48 +0000 (UTC)
commit 049d8b882619f82be7680d5657b06b606fbfd233
Author: Daniel Espinosa <esodan gmail com>
Date: Mon Aug 13 16:40:05 2018 -0500
GdaSet: use G_DEFINE_TYPE_WITH_PRIVATE macro
libgda/gda-decl.h | 1 -
libgda/gda-set.c | 392 +++++++++++++++++++++++++++++-------------------------
libgda/gda-set.h | 1 -
3 files changed, 212 insertions(+), 182 deletions(-)
---
diff --git a/libgda/gda-decl.h b/libgda/gda-decl.h
index c46256564..9840f0bbf 100644
--- a/libgda/gda-decl.h
+++ b/libgda/gda-decl.h
@@ -71,7 +71,6 @@ typedef struct _GdaSetClass GdaSetClass;
typedef struct _GdaSetNode GdaSetNode;
typedef struct _GdaSetGroup GdaSetGroup;
typedef struct _GdaSetSource GdaSetSource;
-typedef struct _GdaSetPrivate GdaSetPrivate;
typedef struct _GdaBlobOp GdaBlobOp;
typedef struct _GdaBlobOpClass GdaBlobOpClass;
diff --git a/libgda/gda-set.c b/libgda/gda-set.c
index b7f4a0a6a..816218ea9 100644
--- a/libgda/gda-set.c
+++ b/libgda/gda-set.c
@@ -621,8 +621,27 @@ gda_set_node_set_source_column (GdaSetNode *node, gint column)
/*
* Main static functions
*/
-static void gda_set_class_init (GdaSetClass *class);
-static void gda_set_init (GdaSet *set);
+
+/* private structure */
+typedef struct
+{
+ gchar *id;
+ gchar *name;
+ gchar *descr;
+ GHashTable *holders_hash; /* key = GdaHoler ID, value = GdaHolder */
+ GArray *holders_array;
+ gboolean read_only;
+ gboolean validate_changes;
+
+ GSList *holders; /* list of GdaHolder objects */
+ GSList *nodes_list; /* list of GdaSetNode */
+ GSList *sources_list; /* list of GdaSetSource */
+ GSList *groups_list; /* list of GdaSetGroup */
+} GdaSetPrivate;
+
+
+G_DEFINE_TYPE_WITH_PRIVATE(GdaSet, gda_set, G_TYPE_OBJECT)
+
static void gda_set_dispose (GObject *object);
static void gda_set_finalize (GObject *object);
@@ -640,9 +659,6 @@ static void holder_notify_cb (GdaHolder *holder, GParamSpec *pspec, GdaSet *data
static void compute_public_data (GdaSet *set);
static gboolean gda_set_real_add_holder (GdaSet *set, GdaHolder *holder);
-/* get a pointer to the parents to be able to call their destructor */
-static GObjectClass *parent_class = NULL;
-
/* properties */
enum
{
@@ -669,25 +685,7 @@ enum
static gint gda_set_signals[LAST_SIGNAL] = { 0, 0, 0, 0, 0, 0 };
-
-/* private structure */
-struct _GdaSetPrivate
-{
- gchar *id;
- gchar *name;
- gchar *descr;
- GHashTable *holders_hash; /* key = GdaHoler ID, value = GdaHolder */
- GArray *holders_array;
- gboolean read_only;
- gboolean validate_changes;
-
- GSList *holders; /* list of GdaHolder objects */
- GSList *nodes_list; /* list of GdaSetNode */
- GSList *sources_list; /* list of GdaSetSource */
- GSList *groups_list; /* list of GdaSetGroup */
-};
-
-static void
+static void
gda_set_set_property (GObject *object,
guint param_id,
const GValue *value,
@@ -695,19 +693,20 @@ gda_set_set_property (GObject *object,
{
GdaSet* set;
set = GDA_SET (object);
+ GdaSetPrivate *priv = gda_set_get_instance_private (set);
switch (param_id) {
case PROP_ID:
- g_free (set->priv->id);
- set->priv->id = g_value_dup_string (value);
+ g_free (priv->id);
+ priv->id = g_value_dup_string (value);
break;
case PROP_NAME:
- g_free (set->priv->name);
- set->priv->name = g_value_dup_string (value);
+ g_free (priv->name);
+ priv->name = g_value_dup_string (value);
break;
case PROP_DESCR:
- g_free (set->priv->descr);
- set->priv->descr = g_value_dup_string (value);
+ g_free (priv->descr);
+ priv->descr = g_value_dup_string (value);
break;
case PROP_HOLDERS: {
/* add the holders */
@@ -718,14 +717,14 @@ gda_set_set_property (GObject *object,
break;
}
case PROP_VALIDATE_CHANGES:
- if (set->priv->validate_changes != g_value_get_boolean (value)) {
+ if (priv->validate_changes != g_value_get_boolean (value)) {
GSList *list;
- set->priv->validate_changes = g_value_get_boolean (value);
- for (list = set->priv->holders; list; list = list->next) {
+ priv->validate_changes = g_value_get_boolean (value);
+ for (list = priv->holders; list; list = list->next) {
GdaHolder *holder = (GdaHolder*) list->data;
g_object_set ((GObject*) holder, "validate-changes",
- set->priv->validate_changes, NULL);
- if (set->priv->validate_changes)
+ priv->validate_changes, NULL);
+ if (priv->validate_changes)
g_signal_connect ((GObject*) holder, "validate-change",
G_CALLBACK (validate_change_holder_cb), set);
else
@@ -749,22 +748,23 @@ gda_set_get_property (GObject *object,
{
GdaSet* set;
set = GDA_SET (object);
+ GdaSetPrivate *priv = gda_set_get_instance_private (set);
switch (param_id) {
case PROP_ID:
- g_value_set_string (value, set->priv->id);
+ g_value_set_string (value, priv->id);
break;
case PROP_NAME:
- if (set->priv->name)
- g_value_set_string (value, set->priv->name);
+ if (priv->name)
+ g_value_set_string (value, priv->name);
else
- g_value_set_string (value, set->priv->id);
+ g_value_set_string (value, priv->id);
break;
case PROP_DESCR:
- g_value_set_string (value, set->priv->descr);
+ g_value_set_string (value, priv->descr);
break;
case PROP_VALIDATE_CHANGES:
- g_value_set_boolean (value, set->priv->validate_changes);
+ g_value_set_boolean (value, priv->validate_changes);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
@@ -782,35 +782,6 @@ GQuark gda_set_error_quark (void)
}
-GType
-gda_set_get_type (void)
-{
- static GType type = 0;
-
- if (G_UNLIKELY (type == 0)) {
- static GMutex registering;
- static const GTypeInfo info = {
- sizeof (GdaSetClass),
- (GBaseInitFunc) NULL,
- (GBaseFinalizeFunc) NULL,
- (GClassInitFunc) gda_set_class_init,
- NULL,
- NULL,
- sizeof (GdaSet),
- 0,
- (GInstanceInitFunc) gda_set_init,
- 0
- };
-
- g_mutex_lock (®istering);
- if (type == 0)
- type = g_type_register_static (G_TYPE_OBJECT, "GdaSet", &info, 0);
- g_mutex_unlock (®istering);
- }
-
- return type;
-}
-
static gboolean
validate_accumulator (G_GNUC_UNUSED GSignalInvocationHint *ihint,
GValue *return_accu,
@@ -843,7 +814,7 @@ gda_set_class_init (GdaSetClass *class)
{
GObjectClass *object_class = G_OBJECT_CLASS (class);
- parent_class = g_type_class_peek_parent (class);
+ gda_set_parent_class = g_type_class_peek_parent (class);
gda_set_signals[HOLDER_CHANGED] =
g_signal_new ("holder-changed",
@@ -1003,15 +974,15 @@ gda_set_class_init (GdaSetClass *class)
static void
gda_set_init (GdaSet *set)
{
- set->priv = g_new0 (GdaSetPrivate, 1);
- set->priv->holders = NULL;
- set->priv->nodes_list = NULL;
- set->priv->sources_list = NULL;
- set->priv->groups_list = NULL;
- set->priv->holders_hash = g_hash_table_new (g_str_hash, g_str_equal);
- set->priv->holders_array = NULL;
- set->priv->read_only = FALSE;
- set->priv->validate_changes = TRUE;
+ GdaSetPrivate *priv = gda_set_get_instance_private (set);
+ priv->holders = NULL;
+ priv->nodes_list = NULL;
+ priv->sources_list = NULL;
+ priv->groups_list = NULL;
+ priv->holders_hash = g_hash_table_new (g_str_hash, g_str_equal);
+ priv->holders_array = NULL;
+ priv->read_only = FALSE;
+ priv->validate_changes = TRUE;
}
@@ -1055,7 +1026,10 @@ gda_set_new_read_only (GSList *holders)
GObject *obj;
obj = g_object_new (GDA_TYPE_SET, NULL);
- ((GdaSet*) obj)->priv->read_only = TRUE;
+
+ GdaSetPrivate *priv = gda_set_get_instance_private (GDA_SET(obj));
+
+ priv->read_only = TRUE;
for (; holders; holders = holders->next)
gda_set_real_add_holder ((GdaSet*) obj, GDA_HOLDER (holders->data));
compute_public_data ((GdaSet*) obj);
@@ -1077,8 +1051,9 @@ gda_set_copy (GdaSet *set)
GdaSet *copy;
GSList *list, *holders = NULL;
g_return_val_if_fail (GDA_IS_SET (set), NULL);
+ GdaSetPrivate *priv = gda_set_get_instance_private (set);
- for (list = set->priv->holders; list; list = list->next)
+ for (list = priv->holders; list; list = list->next)
holders = g_slist_prepend (holders, gda_holder_copy (GDA_HOLDER (list->data)));
holders = g_slist_reverse (holders);
@@ -1113,6 +1088,7 @@ gda_set_new_inline (gint nb, ...)
gchar *id;
gint i;
gboolean allok = TRUE;
+ GdaSetPrivate *priv = gda_set_get_instance_private (set);
/* build the list of holders */
va_start (ap, nb);
@@ -1218,9 +1194,10 @@ gda_set_set_holder_value (GdaSet *set, GError **error, const gchar *holder_id, .
va_list ap;
GValue *value;
GType type;
+ GdaSetPrivate *priv = gda_set_get_instance_private (set);
g_return_val_if_fail (GDA_IS_SET (set), FALSE);
- g_return_val_if_fail (set->priv, FALSE);
+ g_return_val_if_fail (priv, FALSE);
holder = gda_set_get_holder (set, holder_id);
if (!holder) {
@@ -1299,8 +1276,11 @@ gda_set_get_holder_value (GdaSet *set, const gchar *holder_id)
{
GdaHolder *holder;
- g_return_val_if_fail (GDA_IS_SET (set), FALSE);
- g_return_val_if_fail (set->priv, FALSE);
+ g_return_val_if_fail (GDA_IS_SET (set), NULL);
+
+ GdaSetPrivate *priv = gda_set_get_instance_private (set);
+
+ g_return_val_if_fail (priv, NULL);
holder = gda_set_get_holder (set, holder_id);
if (holder)
@@ -1563,19 +1543,21 @@ gda_set_new_from_spec_node (xmlNodePtr xml_spec, GError **error)
xmlChar *prop;;
set = gda_set_new (holders);
+ GdaSetPrivate *priv = gda_set_get_instance_private (set);
+
prop = xmlGetProp(xml_spec, (xmlChar*)"id");
if (prop) {
- set->priv->id = g_strdup ((gchar*)prop);
+ priv->id = g_strdup ((gchar*)prop);
xmlFree (prop);
}
prop = xmlGetProp(xml_spec, (xmlChar*)"name");
if (prop) {
- set->priv->name = g_strdup ((gchar*)prop);
+ priv->name = g_strdup ((gchar*)prop);
xmlFree (prop);
}
prop = xmlGetProp(xml_spec, (xmlChar*)"descr");
if (prop) {
- set->priv->descr = g_strdup ((gchar*)prop);
+ priv->descr = g_strdup ((gchar*)prop);
xmlFree (prop);
}
}
@@ -1602,13 +1584,16 @@ gda_set_remove_holder (GdaSet *set, GdaHolder *holder)
GdaDataModel *model;
g_return_if_fail (GDA_IS_SET (set));
- g_return_if_fail (set->priv);
- g_return_if_fail (g_slist_find (set->priv->holders, holder));
- if (set->priv->validate_changes)
+ GdaSetPrivate *priv = gda_set_get_instance_private (set);
+
+ g_return_if_fail (priv);
+ g_return_if_fail (g_slist_find (priv->holders, holder));
+
+ if (priv->validate_changes)
g_signal_handlers_disconnect_by_func (G_OBJECT (holder),
G_CALLBACK (validate_change_holder_cb), set);
- if (! set->priv->read_only) {
+ if (! priv->read_only) {
g_signal_handlers_disconnect_by_func (G_OBJECT (holder),
G_CALLBACK (changed_holder_cb), set);
g_signal_handlers_disconnect_by_func (G_OBJECT (holder),
@@ -1636,11 +1621,11 @@ gda_set_remove_holder (GdaSet *set, GdaHolder *holder)
}
set_remove_node (set, node);
- set->priv->holders = g_slist_remove (set->priv->holders, holder);
- g_hash_table_remove (set->priv->holders_hash, gda_holder_get_id (holder));
- if (set->priv->holders_array) {
- g_array_free (set->priv->holders_array, TRUE);
- set->priv->holders_array = NULL;
+ priv->holders = g_slist_remove (priv->holders, holder);
+ g_hash_table_remove (priv->holders_hash, gda_holder_get_id (holder));
+ if (priv->holders_array) {
+ g_array_free (priv->holders_array, TRUE);
+ priv->holders_array = NULL;
}
g_object_unref (G_OBJECT (holder));
}
@@ -1666,9 +1651,11 @@ att_holder_changed_cb (GdaHolder *holder, const gchar *att_name, const GValue *a
static GError *
validate_change_holder_cb (GdaHolder *holder, const GValue *value, GdaSet *set)
{
+ g_return_val_if_fail (GDA_IS_SET (set), NULL);
+ GdaSetPrivate *priv = gda_set_get_instance_private (set);
/* signal the holder validate-change */
GError *error = NULL;
- if (set->priv->read_only)
+ if (priv->read_only)
g_set_error (&error, GDA_SET_ERROR, GDA_SET_READ_ONLY_ERROR, "%s", _("Data set does not allow
modifications"));
else {
#ifdef GDA_DEBUG_signal
@@ -1711,13 +1698,16 @@ gda_set_dispose (GObject *object)
g_return_if_fail (GDA_IS_SET (object));
set = GDA_SET (object);
+
+ GdaSetPrivate *priv = gda_set_get_instance_private (set);
+
/* free the holders list */
- if (set->priv->holders) {
- for (list = set->priv->holders; list; list = list->next) {
- if (set->priv->validate_changes)
+ if (priv->holders) {
+ for (list = priv->holders; list; list = list->next) {
+ if (priv->validate_changes)
g_signal_handlers_disconnect_by_func (G_OBJECT (list->data),
G_CALLBACK (validate_change_holder_cb),
set);
- if (! set->priv->read_only) {
+ if (! priv->read_only) {
g_signal_handlers_disconnect_by_func (G_OBJECT (list->data),
G_CALLBACK (changed_holder_cb), set);
g_signal_handlers_disconnect_by_func (G_OBJECT (list->data),
@@ -1727,29 +1717,29 @@ gda_set_dispose (GObject *object)
}
g_object_unref (list->data);
}
- g_slist_free (set->priv->holders);
+ g_slist_free (priv->holders);
}
- if (set->priv->holders_hash) {
- g_hash_table_destroy (set->priv->holders_hash);
- set->priv->holders_hash = NULL;
+ if (priv->holders_hash) {
+ g_hash_table_destroy (priv->holders_hash);
+ priv->holders_hash = NULL;
}
- if (set->priv->holders_array) {
- g_array_free (set->priv->holders_array, TRUE);
- set->priv->holders_array = NULL;
+ if (priv->holders_array) {
+ g_array_free (priv->holders_array, TRUE);
+ priv->holders_array = NULL;
}
/* free the nodes if there are some */
- while (set->priv->nodes_list)
- set_remove_node (set, GDA_SET_NODE (set->priv->nodes_list->data));
- while (set->priv->sources_list)
- set_remove_source (set, GDA_SET_SOURCE (set->priv->sources_list->data));
+ while (priv->nodes_list)
+ set_remove_node (set, GDA_SET_NODE (priv->nodes_list->data));
+ while (priv->sources_list)
+ set_remove_source (set, GDA_SET_SOURCE (priv->sources_list->data));
- g_slist_foreach (set->priv->groups_list, (GFunc) group_free, NULL);
- g_slist_free (set->priv->groups_list);
- set->priv->groups_list = NULL;
+ g_slist_foreach (priv->groups_list, (GFunc) group_free, NULL);
+ g_slist_free (priv->groups_list);
+ priv->groups_list = NULL;
/* parent class */
- parent_class->dispose (object);
+ G_OBJECT_CLASS(gda_set_parent_class)->dispose (object);
}
static void
@@ -1761,16 +1751,17 @@ gda_set_finalize (GObject *object)
g_return_if_fail (GDA_IS_SET (object));
set = GDA_SET (object);
- if (set->priv) {
- g_free (set->priv->id);
- g_free (set->priv->name);
- g_free (set->priv->descr);
- g_free (set->priv);
- set->priv = NULL;
+
+ GdaSetPrivate *priv = gda_set_get_instance_private (set);
+
+ if (priv) {
+ g_free (priv->id);
+ g_free (priv->name);
+ g_free (priv->descr);
}
/* parent class */
- parent_class->finalize (object);
+ G_OBJECT_CLASS(gda_set_parent_class)->finalize (object);
}
/*
@@ -1785,35 +1776,38 @@ compute_public_data (GdaSet *set)
GdaSetGroup *group;
GHashTable *groups = NULL;
+ g_return_if_fail (GDA_IS_SET (set));
+ GdaSetPrivate *priv = gda_set_get_instance_private (set);
+
/*
* Get rid of all the previous structures
*/
- while (set->priv->nodes_list)
- set_remove_node (set, GDA_SET_NODE (set->priv->nodes_list->data));
- while (set->priv->sources_list)
- set_remove_source (set, GDA_SET_SOURCE (set->priv->sources_list->data));
+ while (priv->nodes_list)
+ set_remove_node (set, GDA_SET_NODE (priv->nodes_list->data));
+ while (priv->sources_list)
+ set_remove_source (set, GDA_SET_SOURCE (priv->sources_list->data));
- g_slist_foreach (set->priv->groups_list, (GFunc) group_free, NULL);
- g_slist_free (set->priv->groups_list);
- set->priv->groups_list = NULL;
+ g_slist_foreach (priv->groups_list, (GFunc) group_free, NULL);
+ g_slist_free (priv->groups_list);
+ priv->groups_list = NULL;
/*
* Creation of the GdaSetNode structures
*/
- for (list = set->priv->holders; list; list = list->next) {
+ for (list = priv->holders; list; list = list->next) {
GdaHolder *holder = GDA_HOLDER (list->data);
gint col;
node = gda_set_node_new (holder);
gda_set_node_set_data_model (node, gda_holder_get_source_model (holder, &col));
gda_set_node_set_source_column (node, col);
- set->priv->nodes_list = g_slist_prepend (set->priv->nodes_list, node);
+ priv->nodes_list = g_slist_prepend (priv->nodes_list, node);
}
- set->priv->nodes_list = g_slist_reverse (set->priv->nodes_list);
+ priv->nodes_list = g_slist_reverse (priv->nodes_list);
/*
* Creation of the GdaSetSource and GdaSetGroup structures
*/
- for (list = set->priv->nodes_list; list;list = list->next) {
+ for (list = priv->nodes_list; list;list = list->next) {
node = GDA_SET_NODE (list->data);
/* source */
@@ -1825,7 +1819,7 @@ compute_public_data (GdaSet *set)
else {
source = gda_set_source_new (gda_set_node_get_data_model (node));
gda_set_source_add_node (source, node);
- set->priv->sources_list = g_slist_prepend (set->priv->sources_list, source);
+ priv->sources_list = g_slist_prepend (priv->sources_list, source);
}
}
@@ -1838,7 +1832,7 @@ compute_public_data (GdaSet *set)
else {
group = gda_set_group_new (node);
gda_set_group_set_source (group, source);
- set->priv->groups_list = g_slist_prepend (set->priv->groups_list, group);
+ priv->groups_list = g_slist_prepend (priv->groups_list, group);
if (gda_set_node_get_data_model (node)) {
if (!groups)
groups = g_hash_table_new (NULL, NULL); /* key = source model,
@@ -1847,7 +1841,7 @@ compute_public_data (GdaSet *set)
}
}
}
- set->priv->groups_list = g_slist_reverse (set->priv->groups_list);
+ priv->groups_list = g_slist_reverse (priv->groups_list);
if (groups)
g_hash_table_destroy (groups);
@@ -1924,8 +1918,11 @@ gda_set_real_add_holder (GdaSet *set, GdaHolder *holder)
GdaHolder *similar;
const gchar *hid;
- /*
- * try to find a similar holder in the set->priv->holders:
+ g_return_val_if_fail (GDA_IS_SET (set), FALSE);
+ GdaSetPrivate *priv = gda_set_get_instance_private (set);
+
+ /*
+ * try to find a similar holder in the priv->holders:
* a holder B is similar to a holder A if it has the same ID
*/
hid = gda_holder_get_id (holder);
@@ -1934,20 +1931,20 @@ gda_set_real_add_holder (GdaSet *set, GdaHolder *holder)
return FALSE;
}
- similar = (GdaHolder*) g_hash_table_lookup (set->priv->holders_hash, hid);
+ similar = (GdaHolder*) g_hash_table_lookup (priv->holders_hash, hid);
if (!similar) {
/* really add @holder to the set */
- set->priv->holders = g_slist_append (set->priv->holders, holder);
- g_hash_table_insert (set->priv->holders_hash, (gchar*) hid, holder);
- if (set->priv->holders_array) {
- g_array_free (set->priv->holders_array, TRUE);
- set->priv->holders_array = NULL;
+ priv->holders = g_slist_append (priv->holders, holder);
+ g_hash_table_insert (priv->holders_hash, (gchar*) hid, holder);
+ if (priv->holders_array) {
+ g_array_free (priv->holders_array, TRUE);
+ priv->holders_array = NULL;
}
g_object_ref (holder);
- if (set->priv->validate_changes)
+ if (priv->validate_changes)
g_signal_connect (G_OBJECT (holder), "validate-change",
G_CALLBACK (validate_change_holder_cb), set);
- if (! set->priv->read_only) {
+ if (! priv->read_only) {
g_signal_connect (G_OBJECT (holder), "changed",
G_CALLBACK (changed_holder_cb), set);
g_signal_connect (G_OBJECT (holder), "source-changed",
@@ -1990,8 +1987,9 @@ gda_set_merge_with_set (GdaSet *set, GdaSet *set_to_merge)
GSList *holders;
g_return_if_fail (GDA_IS_SET (set));
g_return_if_fail (set_to_merge && GDA_IS_SET (set_to_merge));
+ GdaSetPrivate *priv = gda_set_get_instance_private (set_to_merge);
- for (holders = set_to_merge->priv->holders; holders; holders = holders->next)
+ for (holders = priv->holders; holders; holders = holders->next)
gda_set_real_add_holder (set, GDA_HOLDER (holders->data));
compute_public_data (set);
}
@@ -1999,17 +1997,21 @@ gda_set_merge_with_set (GdaSet *set, GdaSet *set_to_merge)
static void
set_remove_node (GdaSet *set, GdaSetNode *node)
{
- g_return_if_fail (g_slist_find (set->priv->nodes_list, node));
+ g_return_if_fail (GDA_IS_SET (set));
+ GdaSetPrivate *priv = gda_set_get_instance_private (set);
gda_set_node_free (node);
- set->priv->nodes_list = g_slist_remove (set->priv->nodes_list, node);
+ priv->nodes_list = g_slist_remove (priv->nodes_list, node);
}
static void
set_remove_source (GdaSet *set, GdaSetSource *source)
{
- g_return_if_fail (g_slist_find (set->priv->sources_list, source));
+ g_return_if_fail (GDA_IS_SET (set));
+ GdaSetPrivate *priv = gda_set_get_instance_private (set);
+
+ g_return_if_fail (g_slist_find (priv->sources_list, source));
gda_set_source_free (source);
- set->priv->sources_list = g_slist_remove (set->priv->sources_list, source);
+ priv->sources_list = g_slist_remove (priv->sources_list, source);
}
/**
@@ -2031,9 +2033,12 @@ gda_set_is_valid (GdaSet *set, GError **error)
GSList *holders;
g_return_val_if_fail (GDA_IS_SET (set), FALSE);
- g_return_val_if_fail (set->priv, FALSE);
- for (holders = set->priv->holders; holders; holders = holders->next) {
+ GdaSetPrivate *priv = gda_set_get_instance_private (set);
+
+ g_return_val_if_fail (priv, FALSE);
+
+ for (holders = priv->holders; holders; holders = holders->next) {
if (!gda_holder_is_valid (GDA_HOLDER (holders->data))) {
g_set_error (error, GDA_SET_ERROR, GDA_SET_INVALID_ERROR,
"%s", _("One or more values are invalid"));
@@ -2079,7 +2084,9 @@ gda_set_get_holder (GdaSet *set, const gchar *holder_id)
g_return_val_if_fail (GDA_IS_SET (set), NULL);
g_return_val_if_fail (holder_id, NULL);
- return (GdaHolder *) g_hash_table_lookup (set->priv->holders_hash, holder_id);
+ GdaSetPrivate *priv = gda_set_get_instance_private (set);
+
+ return (GdaHolder *) g_hash_table_lookup (priv->holders_hash, holder_id);
}
/**
@@ -2098,18 +2105,19 @@ gda_set_get_nth_holder (GdaSet *set, gint pos)
{
g_return_val_if_fail (GDA_IS_SET (set), NULL);
g_return_val_if_fail (pos >= 0, NULL);
+ GdaSetPrivate *priv = gda_set_get_instance_private (set);
- if (! set->priv->holders_array) {
+ if (! priv->holders_array) {
GSList *list;
- set->priv->holders_array = g_array_sized_new (FALSE, FALSE, sizeof (GdaHolder*),
- g_slist_length (set->priv->holders));
- for (list = set->priv->holders; list; list = list->next)
- g_array_append_val (set->priv->holders_array, list->data);
+ priv->holders_array = g_array_sized_new (FALSE, FALSE, sizeof (GdaHolder*),
+ g_slist_length (priv->holders));
+ for (list = priv->holders; list; list = list->next)
+ g_array_append_val (priv->holders_array, list->data);
}
- if ((guint)pos >= set->priv->holders_array->len)
+ if ((guint)pos >= priv->holders_array->len)
return NULL;
else
- return g_array_index (set->priv->holders_array, GdaHolder*, pos);
+ return g_array_index (priv->holders_array, GdaHolder*, pos);
}
/**
@@ -2121,7 +2129,10 @@ GSList*
gda_set_get_holders (GdaSet *set) {
g_return_val_if_fail (set != NULL, NULL);
g_return_val_if_fail (GDA_IS_SET(set), NULL);
- return set->priv->holders;
+
+ GdaSetPrivate *priv = gda_set_get_instance_private (set);
+
+ return priv->holders;
}
/**
* gda_set_get_nodes:
@@ -2131,7 +2142,10 @@ gda_set_get_holders (GdaSet *set) {
GSList*
gda_set_get_nodes (GdaSet *set) {
g_return_val_if_fail (GDA_IS_SET(set), NULL);
- return set->priv->nodes_list;
+
+ GdaSetPrivate *priv = gda_set_get_instance_private (set);
+
+ return priv->nodes_list;
}
/**
@@ -2142,7 +2156,10 @@ gda_set_get_nodes (GdaSet *set) {
GSList*
gda_set_get_sources (GdaSet *set) {
g_return_val_if_fail (GDA_IS_SET(set), NULL);
- return set->priv->sources_list;
+
+ GdaSetPrivate *priv = gda_set_get_instance_private (set);
+
+ return priv->sources_list;
}
/**
@@ -2153,7 +2170,10 @@ gda_set_get_sources (GdaSet *set) {
GSList*
gda_set_get_groups (GdaSet *set) {
g_return_val_if_fail (GDA_IS_SET(set), NULL);
- return set->priv->groups_list;
+
+ GdaSetPrivate *priv = gda_set_get_instance_private (set);
+
+ return priv->groups_list;
}
/**
* gda_set_get_node:
@@ -2171,12 +2191,15 @@ gda_set_get_node (GdaSet *set, GdaHolder *holder)
GSList *list;
g_return_val_if_fail (GDA_IS_SET (set), NULL);
- g_return_val_if_fail (set->priv, NULL);
+
+ GdaSetPrivate *priv = gda_set_get_instance_private (set);
+
+ g_return_val_if_fail (priv, NULL);
g_return_val_if_fail (GDA_IS_HOLDER (holder), NULL);
/* FIXME: May is better to use holder's hash for better performance */
- g_return_val_if_fail (g_slist_find (set->priv->holders, holder), NULL);
+ g_return_val_if_fail (g_slist_find (priv->holders, holder), NULL);
- for (list = set->priv->nodes_list; list && !retval; list = list->next) {
+ for (list = priv->nodes_list; list && !retval; list = list->next) {
GdaHolder *node_holder;
retval = GDA_SET_NODE (list->data);
node_holder = gda_set_node_get_holder (retval);
@@ -2230,11 +2253,14 @@ gda_set_get_group (GdaSet *set, GdaHolder *holder)
GSList *list;
g_return_val_if_fail (GDA_IS_SET (set), NULL);
- g_return_val_if_fail (set->priv, NULL);
+
+ GdaSetPrivate *priv = gda_set_get_instance_private (set);
+
+ g_return_val_if_fail (priv, NULL);
g_return_val_if_fail (GDA_IS_HOLDER (holder), NULL);
- g_return_val_if_fail (g_slist_find (set->priv->holders, holder), NULL);
+ g_return_val_if_fail (g_slist_find (priv->holders, holder), NULL);
- for (list = set->priv->groups_list; list; list = list->next) {
+ for (list = priv->groups_list; list; list = list->next) {
retval = GDA_SET_GROUP (list->data);
GSList *sublist;
for (sublist = gda_set_group_get_nodes (retval); sublist; sublist = sublist->next) {
@@ -2271,10 +2297,13 @@ gda_set_get_source_for_model (GdaSet *set, GdaDataModel *model)
GSList *list;
g_return_val_if_fail (GDA_IS_SET (set), NULL);
- g_return_val_if_fail (set->priv, NULL);
+
+ GdaSetPrivate *priv = gda_set_get_instance_private (set);
+
+ g_return_val_if_fail (priv, NULL);
g_return_val_if_fail (GDA_IS_DATA_MODEL (model), NULL);
- list = set->priv->sources_list;
+ list = priv->sources_list;
while (list && !retval) {
retval = GDA_SET_SOURCE (list->data);
source_model = gda_set_source_get_data_model (retval);
@@ -2312,7 +2341,10 @@ gda_set_replace_source_model (GdaSet *set, GdaSetSource *source, GdaDataModel *m
g_return_if_fail (GDA_IS_SET (set));
g_return_if_fail (source);
- g_return_if_fail (g_slist_find (set->priv->sources_list, source));
+
+ GdaSetPrivate *priv = gda_set_get_instance_private (set);
+
+ g_return_if_fail (g_slist_find (priv->sources_list, source));
g_return_if_fail (GDA_IS_DATA_MODEL (model));
/* compare models */
@@ -2417,10 +2449,10 @@ void
gda_set_dump (GdaSet *set)
{
g_print ("=== GdaSet %p ===\n", set);
- g_slist_foreach (set->priv->holders, (GFunc) holder_dump, NULL);
- g_slist_foreach (set->priv->nodes_list, (GFunc) set_node_dump, NULL);
- g_slist_foreach (set->priv->sources_list, (GFunc) set_source_dump, NULL);
- g_slist_foreach (set->priv->groups_list, (GFunc) set_group_dump, NULL);
+ g_slist_foreach (priv->holders, (GFunc) holder_dump, NULL);
+ g_slist_foreach (priv->nodes_list, (GFunc) set_node_dump, NULL);
+ g_slist_foreach (priv->sources_list, (GFunc) set_source_dump, NULL);
+ g_slist_foreach (priv->groups_list, (GFunc) set_group_dump, NULL);
g_print ("=== GdaSet %p END ===\n", set);
}
#endif
diff --git a/libgda/gda-set.h b/libgda/gda-set.h
index 2496d5929..19f7ba8d0 100644
--- a/libgda/gda-set.h
+++ b/libgda/gda-set.h
@@ -94,7 +94,6 @@ void gda_set_source_set_data_model (GdaSetSource *s, GdaDataModel *mode
struct _GdaSet
{
GObject object;
- GdaSetPrivate *priv;
};
/* struct for the object's class */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]