GnuCash  2.6.99
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
gncmod-backend-dbi.c
1 /*********************************************************************
2  * gncmod-backend-dbi.c
3  * module definition/initialization for the dbi backend module
4  *
5  * @author Copyright (c) 2006-2008 Phil Longstaff <[email protected]>
6  *********************************************************************/
7 
8 #include <stdio.h>
9 #include <gmodule.h>
10 /* #include <glib-gobject.h> */
11 
12 #include "gnc-module.h"
13 #include "gnc-module-api.h"
14 
15 /* version of the gnc module system interface we require */
16 int gnc_module_system_interface = 0;
17 
18 /* module versioning uses libtool semantics. */
19 int gnc_module_current = 0;
20 int gnc_module_revision = 0;
21 int gnc_module_age = 0;
22 
23 /*@ dependent @*//*@ null @*/
24 static GNCModule engine;
25 
26 gchar *
27 gnc_module_path(void)
28 {
29  return g_strdup( "gnucash/backend/dbi" );
30 }
31 
32 gchar *
33 gnc_module_description(void)
34 {
35  return g_strdup( "The DBI/SQL backend for GnuCash" );
36 }
37 
38 int
39 gnc_module_init(int refcount)
40 {
41  engine = gnc_module_load( "gnucash/engine", 0 );
42  if ( !engine ) return FALSE;
43 
44  return TRUE;
45 }
46 
47 int
48 gnc_module_end(int refcount)
49 {
50  int unload = TRUE;
51 
52  if ( engine != NULL )
53  {
54  unload = gnc_module_unload(engine);
55  }
56 
57  if ( refcount == 0 )
58  {
59  engine = NULL;
60  }
61 
62  return unload;
63 }