[libgda/metat: 1/9] Revert "sqlite-provider: use G_DEFINE_TYPE"
- From: Daniel Espinosa Ortiz <despinosa src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libgda/metat: 1/9] Revert "sqlite-provider: use G_DEFINE_TYPE"
- Date: Wed, 7 Nov 2018 15:36:41 +0000 (UTC)
commit e9a3a6b367cf29460a0a3c2231b77e6d5730f268
Author: Daniel Espinosa <esodan gmail com>
Date: Sun Sep 2 06:53:47 2018 -0500
Revert "sqlite-provider: use G_DEFINE_TYPE"
This reverts commit f8c1b1efba44368ab55d943b143be4793890dfa3.
libgda/sqlite/gda-sqlite-provider.c | 59 +++++++++++++++++++++++++++++++++++--
1 file changed, 57 insertions(+), 2 deletions(-)
---
diff --git a/libgda/sqlite/gda-sqlite-provider.c b/libgda/sqlite/gda-sqlite-provider.c
index b73725e83..c4774752f 100644
--- a/libgda/sqlite/gda-sqlite-provider.c
+++ b/libgda/sqlite/gda-sqlite-provider.c
@@ -249,7 +249,10 @@ pending_blobs_free_list (GSList *blist)
/*
* GObject methods
*/
-G_DEFINE_TYPE(GdaSqliteProvider, gda_sqlite_provider, GDA_TYPE_SERVER_PROVIDER)
+static void gda_sqlite_provider_class_init (GdaSqliteProviderClass *klass);
+static void gda_sqlite_provider_init (GdaSqliteProvider *provider,
+ GdaSqliteProviderClass *klass);
+static GObjectClass *parent_class = NULL;
/*
* GdaServerProvider's virtual methods
@@ -547,6 +550,8 @@ GdaServerProviderMeta sqlite_meta_functions = {
static void
gda_sqlite_provider_class_init (GdaSqliteProviderClass *klass)
{
+ parent_class = g_type_class_peek_parent (klass);
+
/* set virtual functions */
gda_server_provider_set_impl_functions (GDA_SERVER_PROVIDER_CLASS (klass),
GDA_SERVER_PROVIDER_FUNCTIONS_BASE,
@@ -560,7 +565,7 @@ gda_sqlite_provider_class_init (GdaSqliteProviderClass *klass)
}
static void
-gda_sqlite_provider_init (GdaSqliteProvider *sqlite_prv)
+gda_sqlite_provider_init (GdaSqliteProvider *sqlite_prv, G_GNUC_UNUSED GdaSqliteProviderClass *klass)
{
g_mutex_lock (&init_mutex);
@@ -586,6 +591,56 @@ gda_sqlite_provider_init (GdaSqliteProvider *sqlite_prv)
g_mutex_unlock (&init_mutex);
}
+GType
+gda_sqlite_provider_get_type (void)
+{
+ static GType type = 0;
+
+ if (G_UNLIKELY (type == 0)) {
+ static GMutex registering;
+ static GTypeInfo info = {
+ sizeof (GdaSqliteProviderClass),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) gda_sqlite_provider_class_init,
+ NULL, NULL,
+ sizeof (GdaSqliteProvider),
+ 0,
+ (GInstanceInitFunc) gda_sqlite_provider_init,
+ 0
+ };
+ g_mutex_lock (®istering);
+ if (type == 0) {
+#ifdef WITH_BDBSQLITE
+ type = g_type_register_static (GDA_TYPE_SERVER_PROVIDER, CLASS_PREFIX "Provider",
&info, 0);
+#else
+ #ifdef STATIC_SQLITE
+ type = g_type_register_static (GDA_TYPE_SERVER_PROVIDER, CLASS_PREFIX "Provider",
&info, 0);
+ #else
+ #ifdef HAVE_SQLITE
+ GModule *module2;
+
+ module2 = find_sqlite_library ("libsqlite3");
+ if (module2)
+ load_symbols (module2);
+ if (s3r)
+ type = g_type_register_static (GDA_TYPE_SERVER_PROVIDER, CLASS_PREFIX
"Provider", &info, 0);
+ else
+ g_warning (_("Can't find libsqlite3." G_MODULE_SUFFIX " file."));
+ #else
+ type = g_type_register_static (GDA_TYPE_SERVER_PROVIDER, CLASS_PREFIX "Provider",
&info, 0);
+ #endif
+ #endif
+#endif
+ }
+ g_mutex_unlock (®istering);
+ }
+
+ return type;
+}
+
+
+
static GdaWorker *
gda_sqlite_provider_create_worker (GdaServerProvider *provider, gboolean for_cnc)
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]