From da19edc62cede0e5a41ec2427f514851d09e378c Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Sun, 22 Dec 2019 11:21:46 +0100 Subject: [PATCH] Added functions ::set_[gda_connection|cnc_string]*. --- src/audit.c | 119 +++++++++++++++++++++++++++++++++------------- src/libzakaudit.h | 6 +++ tests/test1.c | 5 +- 3 files changed, 95 insertions(+), 35 deletions(-) diff --git a/src/audit.c b/src/audit.c index bec95fb..8413587 100644 --- a/src/audit.c +++ b/src/audit.c @@ -702,10 +702,76 @@ zak_audit_get_property (GObject *object, guint property_id, GValue *value, GPara ZakAudit *zak_audit_new_with_datasources (GdaConnection *gda_connection, ...) { + va_list ap; ZakAudit *zak_audit = ZAK_AUDIT (g_object_new (zak_audit_get_type (), NULL)); + va_start (ap, gda_connection); + + if (!zak_audit_set_gda_connection_with_datasources (zak_audit, gda_connection, ap)) + { + g_clear_object (&zak_audit); + } + + return zak_audit; +} + +/** + * zak_audit_new_from_string_with_datasources: + * @cnc_string: the connection string to the datasource that contains library's tables. + * @...: a #NULL terminated list of datasources to load. + * + * Returns: the newly #ZakAudit object. + */ +ZakAudit +*zak_audit_new_from_string_with_datasources (const gchar *cnc_string, ...) +{ + va_list ap; + + ZakAudit *zak_audit = ZAK_AUDIT (g_object_new (zak_audit_get_type (), NULL)); + + va_start (ap, cnc_string); + + if (!zak_audit_set_cnc_string_with_datasources (zak_audit, cnc_string, ap)) + { + g_clear_object (&zak_audit); + } + + return zak_audit; +} + +/** + * zak_audit_new: + * @gda_connection: a #GdaConnection object. + * + * Returns: the newly #ZakAudit object. + */ +ZakAudit +*zak_audit_new (GdaConnection *gda_connection) +{ + return zak_audit_new_with_datasources (gda_connection, NULL); +} + +/** + * zak_audit_new_from_string: + * @cnc_string: the connection string to the datasource that contains library's tables. + * + * Returns: the newly #ZakAudit object. + */ +ZakAudit +*zak_audit_new_from_string (const gchar *cnc_string) +{ + return zak_audit_new_from_string_with_datasources (cnc_string, NULL); +} + +gboolean +zak_audit_set_gda_connection_with_datasources (ZakAudit *zak_audit, GdaConnection *gda_connection, ...) +{ + va_list ap; + + g_return_val_if_fail (IS_ZAK_AUDIT (zak_audit), FALSE); + ZakAuditPrivate *priv = ZAK_AUDIT_GET_PRIVATE (zak_audit); priv->gdaex = gdaex_new_from_connection (gda_connection); @@ -714,7 +780,7 @@ ZakAudit { /* TODO */ g_warning (_("Error creating GdaEx object.")); - return NULL; + return FALSE; } va_start (ap, gda_connection); @@ -724,27 +790,26 @@ ZakAudit { /* TODO */ g_warning (_("Error loading datasources.")); - return NULL; + return FALSE; } va_end (ap); - return zak_audit; + return TRUE; } -/** - * zak_audit_new_from_string_with_datasources: - * @cnc_string: the connection string to the datasource that contains library's tables. - * @...: a #NULL terminated list of datasources to load. - * - * Returns: the newly #ZakAudit object. - */ -ZakAudit -*zak_audit_new_from_string_with_datasources (const gchar *cnc_string, ...) +gboolean +zak_audit_set_gda_connection (ZakAudit *zak_audit, GdaConnection *gda_connection) +{ + return zak_audit_set_gda_connection_with_datasources (zak_audit, gda_connection, NULL); +} + +gboolean +zak_audit_set_cnc_string_with_datasources (ZakAudit *zak_audit, const gchar *cnc_string, ...) { va_list ap; - ZakAudit *zak_audit = ZAK_AUDIT (g_object_new (zak_audit_get_type (), NULL)); + g_return_val_if_fail (IS_ZAK_AUDIT (zak_audit), FALSE); ZakAuditPrivate *priv = ZAK_AUDIT_GET_PRIVATE (zak_audit); @@ -754,7 +819,7 @@ ZakAudit { /* TODO */ g_warning (_("Error creating GdaEx object.")); - return NULL; + return FALSE; } va_start (ap, cnc_string); @@ -764,36 +829,24 @@ ZakAudit { /* TODO */ g_warning (_("Error loading datasources.")); - return NULL; + return FALSE; } va_end (ap); - return zak_audit; -} - -/** - * zak_audit_new: - * @gda_connection: a #GdaConnection object. - * - * Returns: the newly #ZakAudit object. - */ -ZakAudit -*zak_audit_new (GdaConnection *gda_connection) -{ - return zak_audit_new_with_datasources (gda_connection, NULL); + return TRUE; } /** - * zak_audit_new_from_string: + * zak_audit_set_cnc_string: * @cnc_string: the connection string to the datasource that contains library's tables. * - * Returns: the newly #ZakAudit object. + * Returns: @TRUE on newly #ZakAudit object. */ -ZakAudit -*zak_audit_new_from_string (const gchar *cnc_string) +gboolean +zak_audit_set_cnc_string (ZakAudit *zak_audit, const gchar *cnc_string) { - return zak_audit_new_from_string_with_datasources (cnc_string, NULL); + return zak_audit_set_cnc_string_with_datasources (zak_audit, cnc_string, NULL); } /** diff --git a/src/libzakaudit.h b/src/libzakaudit.h index 26ad18d..05adf42 100644 --- a/src/libzakaudit.h +++ b/src/libzakaudit.h @@ -68,6 +68,12 @@ ZakAudit *zak_audit_new_from_string_with_datasources (const gchar *cnc_string, . ZakAudit *zak_audit_new (GdaConnection *gda_connection); ZakAudit *zak_audit_new_from_string (const gchar *cnc_string); +gboolean zak_audit_set_gda_connection_with_datasources (ZakAudit *zak_audit,GdaConnection *gda_connection, ...); +gboolean zak_audit_set_gda_connection (ZakAudit *zak_audit,GdaConnection *gda_connection); + +gboolean zak_audit_set_cnc_string_with_datasources (ZakAudit *zak_audit,const gchar *cnc_string, ...); +gboolean zak_audit_set_cnc_string (ZakAudit *zak_audit,const gchar *cnc_string); + gboolean zak_audit_action (ZakAudit *zak_audit, enum ZakAuditActions action, const gchar *username, diff --git a/tests/test1.c b/tests/test1.c index 505fe15..da1b2f1 100644 --- a/tests/test1.c +++ b/tests/test1.c @@ -64,11 +64,12 @@ main (int argc, char *argv[]) gtk_init (&argc, &argv); gdaex = gdaex_new (); + audit = g_object_new (TYPE_ZAK_AUDIT, NULL); ctx = g_option_context_new (""); g_option_context_add_main_entries (ctx, entries, "audit_test1"); g_option_context_add_group (ctx, gdaex_get_option_group (gdaex)); - //g_option_context_add_group (ctx, zak_audit_get_option_group (g_object_new (TYPE_ZAK_AUDIT, NULL))); + g_option_context_add_group (ctx, zak_audit_get_option_group (audit)); if (!g_option_context_parse (ctx, &argc, &argv, &error)) { g_warning ("Errore nell'analisi della riga comandi: %s.", @@ -87,7 +88,7 @@ main (int argc, char *argv[]) return 0; } - audit = zak_audit_new_from_string_with_datasources (cnc_zakaudit, "audit_test1", NULL); + zak_audit_set_cnc_string_with_datasources (audit, cnc_zakaudit, "audit_test1", NULL); if (audit == NULL) { -- 2.49.0