~ubuntu-branches/ubuntu/karmic/mergeant/karmic

« back to all changes in this revision

Viewing changes to libmergeant/mg-database.h

  • Committer: Bazaar Package Importer
  • Author(s): Gustavo R. Montesino
  • Date: 2007-11-29 08:44:48 UTC
  • mfrom: (2.1.4 hardy)
  • Revision ID: james.westby@ubuntu.com-20071129084448-6aon73d22bv6hzfw
Tags: 0.67-3
* Re-enable installation of the mime files in mergeant.install
* mergeant.dirs: create usr/share/mime/packages to make dh_installmime add
  the update-mime-database code snippets

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* mg-database.h
2
 
 *
3
 
 * Copyright (C) 2003 Vivien Malerba
4
 
 *
5
 
 * This program is free software; you can redistribute it and/or
6
 
 * modify it under the terms of the GNU General Public License as
7
 
 * published by the Free Software Foundation; either version 2 of the
8
 
 * License, or (at your option) any later version.
9
 
 *
10
 
 * This program is distributed in the hope that it will be useful,
11
 
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 
 * GNU General Public License for more details.
14
 
 *
15
 
 * You should have received a copy of the GNU General Public License
16
 
 * along with this program; if not, write to the Free Software
17
 
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
18
 
 * USA
19
 
 */
20
 
 
21
 
 
22
 
#ifndef __MG_DATABASE_H_
23
 
#define __MG_DATABASE_H_
24
 
 
25
 
#include <glib-object.h>
26
 
#include "mg-defs.h"
27
 
#include "mg-base.h"
28
 
#include "mg-conf.h"
29
 
 
30
 
G_BEGIN_DECLS
31
 
 
32
 
#define MG_DATABASE_TYPE          (mg_database_get_type())
33
 
#define MG_DATABASE(obj)          G_TYPE_CHECK_INSTANCE_CAST (obj, mg_database_get_type(), MgDatabase)
34
 
#define MG_DATABASE_CLASS(klass)  G_TYPE_CHECK_CLASS_CAST (klass, mg_database_get_type (), MgDatabaseClass)
35
 
#define IS_MG_DATABASE(obj)       G_TYPE_CHECK_INSTANCE_TYPE (obj, mg_database_get_type ())
36
 
 
37
 
 
38
 
/* error reporting */
39
 
extern GQuark mg_database_error_quark (void);
40
 
#define MG_DATABASE_ERROR mg_database_error_quark ()
41
 
 
42
 
enum
43
 
{
44
 
        MG_DATABASE_XML_SAVE_ERROR,
45
 
        MG_DATABASE_XML_LOAD_ERROR,
46
 
        MG_DATABASE_META_DATA_UPDATE,
47
 
        MG_DATABASE_META_DATA_UPDATE_USER_STOPPED,
48
 
        MG_DATABASE_TABLES_ERROR,
49
 
        MG_DATABASE_SEQUENCES_ERROR
50
 
};
51
 
 
52
 
 
53
 
 
54
 
/* struct for the object's data */
55
 
struct _MgDatabase
56
 
{
57
 
        MgBase                   object;
58
 
        MgDatabasePrivate       *priv;
59
 
};
60
 
 
61
 
/* struct for the object's class */
62
 
struct _MgDatabaseClass
63
 
{
64
 
        MgBaseClass class;
65
 
 
66
 
        /* signals */
67
 
        void   (*table_added)               (MgDatabase *obj, MgDbTable *table);
68
 
        void   (*table_removed)             (MgDatabase *obj, MgDbTable *table);
69
 
        void   (*table_updated)             (MgDatabase *obj, MgDbTable *table);
70
 
 
71
 
        void   (*field_added)               (MgDatabase *obj, MgDbField *field);
72
 
        void   (*field_removed)             (MgDatabase *obj, MgDbField *field);
73
 
        void   (*field_updated)             (MgDatabase *obj, MgDbField *field);
74
 
 
75
 
        void   (*sequence_added)            (MgDatabase *obj, MgDbSequence *seq);
76
 
        void   (*sequence_removed)          (MgDatabase *obj, MgDbSequence *seq);
77
 
        void   (*sequence_updated)          (MgDatabase *obj, MgDbSequence *seq);
78
 
 
79
 
        void   (*constraint_added)          (MgDatabase *obj, MgDbConstraint *cstr);
80
 
        void   (*constraint_removed)        (MgDatabase *obj, MgDbConstraint *cstr);
81
 
        void   (*constraint_updated)        (MgDatabase *obj, MgDbConstraint *cstr);
82
 
        
83
 
        void   (*fs_link_added)              (MgDatabase *obj, MgDbSequence *seq, MgDbField *field);
84
 
        void   (*fs_link_removed)            (MgDatabase *obj, MgDbSequence *seq, MgDbField *field);
85
 
 
86
 
        void   (*data_update_started)       (MgDatabase *obj);
87
 
        void   (*update_progress)           (MgDatabase *obj, gchar * msg, guint now, guint total);
88
 
        void   (*data_update_finished)      (MgDatabase *obj);
89
 
};
90
 
 
91
 
guint              mg_database_get_type                  (void);
92
 
GObject           *mg_database_new                       (MgConf *conf);
93
 
 
94
 
MgConf            *mg_database_get_conf                  (MgDatabase *mgdb);
95
 
 
96
 
gboolean           mg_database_update_dbms_data          (MgDatabase *mgdb, GError **error);
97
 
void               mg_database_stop_update_dbms_data     (MgDatabase *mgdb);
98
 
 
99
 
GSList            *mg_database_get_tables                (MgDatabase *mgdb);
100
 
MgDbTable         *mg_database_get_table_by_name         (MgDatabase *mgdb, const gchar *name);
101
 
MgDbTable         *mg_database_get_table_by_xml_id       (MgDatabase *mgdb, const gchar *xml_id);
102
 
MgDbField         *mg_database_get_field_by_name         (MgDatabase *mgdb, const gchar *fullname);
103
 
MgDbField         *mg_database_get_field_by_xml_id       (MgDatabase *mgdb, const gchar *xml_id);
104
 
 
105
 
MgDbSequence      *mg_database_get_sequence_by_name      (MgDatabase *mgdb, const gchar *name);
106
 
MgDbSequence      *mg_database_get_sequence_by_xml_id    (MgDatabase *mgdb, const gchar *xml_id);
107
 
MgDbSequence      *mg_database_get_sequence_to_field     (MgDatabase *mgdb, MgDbField *field);
108
 
void               mg_database_link_sequence             (MgDatabase *mgdb, 
109
 
                                                          MgDbSequence *seq, MgDbField *field);
110
 
void               mg_database_unlink_sequence           (MgDatabase *mgdb, 
111
 
                                                          MgDbSequence *seq, MgDbField *field);
112
 
 
113
 
void               mg_database_add_constraint            (MgDatabase *mgdb, MgDbConstraint *cstr);
114
 
GSList            *mg_database_get_all_constraints       (MgDatabase *mgdb);
115
 
GSList            *mg_database_get_all_fk_constraints    (MgDatabase *mgdb);
116
 
GSList            *mg_database_get_table_constraints     (MgDatabase *mgdb, MgDbTable *table);
117
 
GSList            *mg_database_get_tables_fk_constraints (MgDatabase *mgdb, MgDbTable *table1, MgDbTable *table2,
118
 
                                                          gboolean table1_has_fk);
119
 
 
120
 
G_END_DECLS
121
 
 
122
 
#endif