1 /*
2  * Copyright (C) 2009 - 2013 Vivien Malerba <malerba@gnome-db.org>
3  *
4  * This program is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU General Public License
6  * as published by the Free Software Foundation; either version 2
7  * of the License, or (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
17  */
18 
19 #ifndef __BROWSER_CONNECTION_PRIVATE_H__
20 #define __BROWSER_CONNECTION_PRIVATE_H__
21 
22 #include <libgda/thread-wrapper/gda-thread-wrapper.h>
23 
24 struct _BrowserConnectionPrivate {
25 	GdaThreadWrapper *wrapper;
26 	GIOChannel       *ioc;
27 	guint             ioc_watch_id;
28 	GSList           *wrapper_jobs;
29 	guint             wrapper_results_timer;
30 	gboolean          long_timer;
31 	gint              nb_no_job_waits; /* number of times check_for_wrapper_result() has been
32 					      called without any job */
33 
34 	GHashTable       *executed_statements; /* key = guint exec ID, value = a StatementResult pointer */
35 
36 	gulong            meta_store_signal;
37 	gulong            transaction_status_signal;
38 
39 	gchar         *name;
40 	GdaConnection *cnc;
41 	gchar         *dict_file_name;
42         GdaSqlParser  *parser;
43 
44 	GdaDsnInfo     dsn_info;
45 	GMutex        mstruct_mutex;
46 	GSList        *p_mstruct_list; /* private GdaMetaStruct list: while they are being created */
47 	GdaMetaStruct *c_mstruct; /* last GdaMetaStruct up to date, ready to be passed as @mstruct */
48 	GdaMetaStruct *mstruct; /* public GdaMetaStruct: once it has been created and is no more modified */
49 
50 	ToolsFavorites *bfav;
51 
52 	gboolean  busy;
53 	gchar    *busy_reason;
54 
55 	GdaConnection *store_cnc;
56 
57 	GdaSet        *variables;
58 
59 	GSList        *results_list; /* list of #ExecCallbackData pointers */
60 	gulong         results_timer_id;
61 };
62 
63 void browser_connection_set_busy_state (BrowserConnection *bcnc, gboolean busy, const gchar *busy_reason);
64 
65 #endif
66