]> saetta.ns0.it Git - zakaudit/libzakaudit/commitdiff
Boxed Datasource struct.
authorAndrea Zagli <azagli@libero.it>
Sun, 22 Dec 2019 11:33:49 +0000 (12:33 +0100)
committerAndrea Zagli <azagli@libero.it>
Sun, 22 Dec 2019 11:33:49 +0000 (12:33 +0100)
src/audit.c
src/libzakaudit.h

index 932a1fd660b8d32f4ad1b265c7ef28bb4182c4d6..04583da19ac975d3618321f195fb6fac7cc458fd 100644 (file)
@@ -80,15 +80,6 @@ typedef struct
        gchar *keys_sql;
 } Table;
 
-typedef struct
-{
-       gint id;
-       gchar *name;
-       gchar *cnc_string;
-       GdaEx *gdaex;
-       GList *tables;
-} Datasource;
-
 typedef struct
 {
        gchar **values;
@@ -100,18 +91,18 @@ static void zak_audit_init (ZakAudit *zak_audit);
 
 static ZakAudit *zak_audit_new_ (void);
 static gboolean load_fields (ZakAudit *zak_audit,
-                             Datasource *datasource,
+                             ZakAuditDatasource *datasource,
                              Table *table);
 static gboolean load_tables (ZakAudit *zak_audit,
-                             Datasource *datasource);
+                             ZakAuditDatasource *datasource);
 static gboolean load_datasources (ZakAudit *zak_audit, va_list ap);
 static Field *get_field_from_name (ZakAudit *zak_audit,
                                    Table *table,
                                    const char *field);
 static Table *get_table_from_name (ZakAudit *zak_audit,
-                                   Datasource *datasource,
+                                   ZakAuditDatasource *datasource,
                                    const char *table);
-static Datasource *get_datasource_from_name (ZakAudit *zak_audit,
+static ZakAuditDatasource *get_datasource_from_name (ZakAudit *zak_audit,
                                              const char *datasource);
 static gboolean insert_value (ZakAudit *zak_audit,
                               gint id_actions,
@@ -281,7 +272,7 @@ free_datasource (gpointer data)
 
 static gboolean
 load_fields (ZakAudit *zak_audit,
-             Datasource *datasource,
+             ZakAuditDatasource *datasource,
              Table *table)
 {
        GdaDataModel *dm;
@@ -369,7 +360,7 @@ load_fields (ZakAudit *zak_audit,
 
 static gboolean
 load_tables (ZakAudit *zak_audit,
-             Datasource *datasource)
+             ZakAuditDatasource *datasource)
 {
        GdaDataModel *dm;
        gchar *sql;
@@ -431,7 +422,7 @@ load_datasources (ZakAudit *zak_audit, va_list ap)
        gchar *sql;
        gint rows;
        gint row;
-       Datasource *datas;
+       ZakAuditDatasource *datas;
 
        GString *str_in;
        char *datasource_name;
@@ -488,7 +479,7 @@ load_datasources (ZakAudit *zak_audit, va_list ap)
 
        for (row = 0; row < rows; row++)
                {
-                       datas = g_new0 (Datasource, 1);
+                       datas = g_new0 (ZakAuditDatasource, 1);
 
                        datas->id = gdaex_data_model_get_field_value_integer_at (dm, row, "id");
                        datas->name = gdaex_data_model_get_field_value_stringify_at (dm, row, "name");
@@ -548,7 +539,7 @@ static Field
 
 static Table
 *get_table_from_name (ZakAudit *zak_audit,
-                        Datasource *datasource,
+                        ZakAuditDatasource *datasource,
                         const char *table)
 {
        Table *ret_table;
@@ -574,11 +565,11 @@ static Table
        return ret_table;
 }
 
-static Datasource
+static ZakAuditDatasource
 *get_datasource_from_name (ZakAudit *zak_audit,
                            const char *datasource)
 {
-       Datasource *ret_datasource;
+       ZakAuditDatasource *ret_datasource;
 
        ZakAuditPrivate *priv = ZAK_AUDIT_GET_PRIVATE (zak_audit);
 
@@ -591,9 +582,9 @@ static Datasource
        ret_datasource = NULL;
        while (f != NULL)
                {
-                       if (g_strcmp0 (((Datasource *)f->data)->name, real_datasource) == 0)
+                       if (g_strcmp0 (((ZakAuditDatasource *)f->data)->name, real_datasource) == 0)
                                {
-                                       ret_datasource = (Datasource *)f->data;
+                                       ret_datasource = (ZakAuditDatasource *)f->data;
                                }
 
                        f = g_list_next (f);
@@ -1014,7 +1005,7 @@ zak_audit_action_v (ZakAudit *zak_audit,
        gint cols;
        gint col;
        GDateTime *gdt;
-       Datasource *datasource;
+       ZakAuditDatasource *datasource;
        Table *table;
 
        ZakAuditPrivate *priv = ZAK_AUDIT_GET_PRIVATE (zak_audit);
@@ -1394,7 +1385,7 @@ zak_audit_action_from_where (ZakAudit *zak_audit,
 {
        gboolean ret;
 
-       Datasource *datasource;
+       ZakAuditDatasource *datasource;
        Table *table;
 
        GdaConnection *conn;
@@ -1772,7 +1763,7 @@ GtkWidget
 
        GtkWidget *ret;
 
-       Datasource *datasource;
+       ZakAuditDatasource *datasource;
        Table *table;
        Field *field;
 
@@ -2166,7 +2157,7 @@ const gchar
                                const gchar *table_name,
                                const gchar **key_values)
 {
-       Datasource *datasource;
+       ZakAuditDatasource *datasource;
        Table *table;
        Field *field;
 
@@ -2278,7 +2269,7 @@ zak_audit_get_record_at (ZakAudit *zak_audit,
 {
        GdaDataModel *dm;
        gchar *sql;
-       Datasource *datasource;
+       ZakAuditDatasource *datasource;
 
        /* find the datasource */
        datasource = get_datasource_from_name (zak_audit, datasource_name);
@@ -2382,3 +2373,28 @@ GOptionGroup
 
        return ret;
 }
+
+ZakAuditDatasource
+*zak_audit_datasource_copy (ZakAuditDatasource *datasource)
+{
+       ZakAuditDatasource *b;
+
+       b = g_slice_new (ZakAuditDatasource);
+       b->id = datasource->id;
+       b->name = g_strdup (datasource->name);
+       b->cnc_string = g_strdup (datasource->cnc_string);
+       b->gdaex = g_object_ref (datasource->gdaex);
+       b->tables = g_list_copy (datasource->tables);
+
+       return b;
+}
+
+void
+zak_audit_datasource_free (ZakAuditDatasource *datasource)
+{
+       g_free (datasource->name);
+       g_free (datasource->cnc_string);
+       g_object_unref (datasource->gdaex);
+       g_list_free (datasource->tables);
+       g_slice_free (ZakAuditDatasource, datasource);
+}
index 05adf426fedee9dc64f600e3183ca78ac1c12e74..097329cf676f355d0a11329ae2ab99dff2da6e00 100644 (file)
@@ -115,6 +115,21 @@ void zak_audit_destroy (ZakAudit *zak_audit);
 
 GOptionGroup *zak_audit_get_option_group (ZakAudit *zak_audit);
 
+typedef struct
+{
+       gint id;
+       gchar *name;
+       gchar *cnc_string;
+       GdaEx *gdaex;
+       GList *tables;
+} ZakAuditDatasource;
+
+ZakAuditDatasource *zak_audit_datasource_copy (ZakAuditDatasource *datasource);
+void zak_audit_datasource_free (ZakAuditDatasource *datasource);
+
+G_DEFINE_BOXED_TYPE (ZakAuditDatasource, zak_audit_datasource, zak_audit_datasource_copy, zak_audit_datasource_free);
+
+
 
 G_END_DECLS