[libgda] GdaCapiProvider: Ported to G_DECLARE/G_DEFINE
- From: Daniel Espinosa Ortiz <despinosa src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libgda] GdaCapiProvider: Ported to G_DECLARE/G_DEFINE
- Date: Thu, 4 Apr 2019 19:49:54 +0000 (UTC)
commit 81968a587b80652c6ddf4c7cddac70847f9b6a41
Author: Daniel Espinosa <esodan gmail com>
Date: Thu Apr 4 13:15:11 2019 -0600
GdaCapiProvider: Ported to G_DECLARE/G_DEFINE
.../skel-implementation/capi/gda-capi-provider.c | 46 +++++-----------------
.../skel-implementation/capi/gda-capi-provider.h | 15 +------
2 files changed, 10 insertions(+), 51 deletions(-)
---
diff --git a/providers/skel-implementation/capi/gda-capi-provider.c
b/providers/skel-implementation/capi/gda-capi-provider.c
index 078e0a6cf..597b7bdd9 100644
--- a/providers/skel-implementation/capi/gda-capi-provider.c
+++ b/providers/skel-implementation/capi/gda-capi-provider.c
@@ -46,9 +46,7 @@
* GObject methods
*/
static void gda_capi_provider_class_init (GdaCapiProviderClass *klass);
-static void gda_capi_provider_init (GdaCapiProvider *provider,
- GdaCapiProviderClass *klass);
-static GObjectClass *parent_class = NULL;
+static void gda_capi_provider_init (GdaCapiProvider *provider);
/*
* GdaServerProvider's virtual methods
@@ -149,7 +147,6 @@ static void gda_capi_free_cnc_data (CapiConnectionData *cdata);
* TO_ADD: any prepared statement to be used internally by the provider should be
* declared here, as constants and as SQL statements
*/
-static GMutex init_mutex;
static GdaStatement **internal_stmt = NULL;
typedef enum {
@@ -260,6 +257,13 @@ GdaServerProviderXa xa_functions = {
NULL, NULL, NULL, NULL, /* padding */
};
+typedef struct {
+ int dummy;
+ /* ADD YOUR DETAILS ABOUT YOUR PROVIDER */
+} GdaCapiProviderPrivate;
+
+G_DEFINE_TYPE_WITH_PRIVATE(GdaCapiProvider, gda_capi_provider, GDA_TYPE_SERVER_PROVIDER)
+
static void
gda_capi_provider_class_init (GdaCapiProviderClass *klass)
{
@@ -270,15 +274,11 @@ gda_capi_provider_class_init (GdaCapiProviderClass *klass)
GDA_SERVER_PROVIDER_FUNCTIONS_META, (gpointer)
&meta_functions);
gda_server_provider_set_impl_functions (GDA_SERVER_PROVIDER_CLASS (klass),
GDA_SERVER_PROVIDER_FUNCTIONS_XA, (gpointer) &xa_functions);
-
- parent_class = g_type_class_peek_parent (klass);
}
static void
-gda_capi_provider_init (GdaCapiProvider *capi_prv, G_GNUC_UNUSED GdaCapiProviderClass *klass)
+gda_capi_provider_init (GdaCapiProvider *capi_prv)
{
- g_mutex_lock (&init_mutex);
-
if (!internal_stmt) {
InternalStatementItem i;
GdaSqlParser *parser;
@@ -297,34 +297,6 @@ gda_capi_provider_init (GdaCapiProvider *capi_prv, G_GNUC_UNUSED GdaCapiProvider
/* TO_ADD: any other provider's init should be added here */
- g_mutex_unlock (&init_mutex);
-}
-
-GType
-gda_capi_provider_get_type (void)
-{
- static GType type = 0;
-
- if (G_UNLIKELY (type == 0)) {
- static GMutex registering;
- static GTypeInfo info = {
- sizeof (GdaCapiProviderClass),
- (GBaseInitFunc) NULL,
- (GBaseFinalizeFunc) NULL,
- (GClassInitFunc) gda_capi_provider_class_init,
- NULL, NULL,
- sizeof (GdaCapiProvider),
- 0,
- (GInstanceInitFunc) gda_capi_provider_init,
- 0
- };
- g_mutex_lock (®istering);
- if (type == 0)
- type = g_type_register_static (GDA_TYPE_SERVER_PROVIDER, "GdaCapiProvider", &info, 0);
- g_mutex_unlock (®istering);
- }
-
- return type;
}
diff --git a/providers/skel-implementation/capi/gda-capi-provider.h
b/providers/skel-implementation/capi/gda-capi-provider.h
index 1610c7ddb..a81de38cd 100644
--- a/providers/skel-implementation/capi/gda-capi-provider.h
+++ b/providers/skel-implementation/capi/gda-capi-provider.h
@@ -27,26 +27,13 @@
#include <libgda/gda-server-provider.h>
#define GDA_TYPE_CAPI_PROVIDER (gda_capi_provider_get_type())
-#define GDA_CAPI_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_CAST (obj, GDA_TYPE_CAPI_PROVIDER,
GdaCapiProvider))
-#define GDA_CAPI_PROVIDER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST (klass, GDA_TYPE_CAPI_PROVIDER,
GdaCapiProviderClass))
-#define GDA_IS_CAPI_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE (obj, GDA_TYPE_CAPI_PROVIDER))
-#define GDA_IS_CAPI_PROVIDER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDA_TYPE_CAPI_PROVIDER))
-
-typedef struct _GdaCapiProvider GdaCapiProvider;
-typedef struct _GdaCapiProviderClass GdaCapiProviderClass;
-
-struct _GdaCapiProvider {
- GdaServerProvider provider;
-};
-
+G_DECLARE_DERIVABLE_TYPE(GdaCapiProvider, gda_capi_provider, GDA, CAPI_PROVIDER, GdaServerProvider)
struct _GdaCapiProviderClass {
GdaServerProviderClass parent_class;
};
G_BEGIN_DECLS
-GType gda_capi_provider_get_type (void) G_GNUC_CONST;
-
G_END_DECLS
#endif
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]