1 /***************************************************************************
2 * Copyright (C) 2007 by Prabakaran Thirumalai *
3 * praba_tuty@yahoo.com *
5 * This program is free software; you can redistribute it and/or modify *
6 * it under the terms of the GNU General Public License as published by *
7 * the Free Software Foundation; either version 2 of the License, or *
8 * (at your option) any later version. *
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. *
15 * You should have received a copy of the GNU General Public License *
16 * along with this program; if not, write to the *
17 * Free Software Foundation, Inc., *
18 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
19 ***************************************************************************/
20 #ifndef SQLGWCONNECTION_H
21 #define SQLGWCONNECTION_H
23 #include<AbsSqlConnection.h>
24 #include<AbsSqlConnection.h>
25 #include<SqlFactory.h>
28 //List Contains MultiDsn Elements
31 char dsn
[IDENTIFIER_LENGTH
];
32 AbsSqlConnection
*adapter
;
33 struct MultiDSN
*next
;
43 CSqlAndAdapterHandler
=3
46 class SqlGwConnection
: public AbsSqlConnection
49 AbsSqlConnection
*adapter
;
50 // struct MultiDSN *multiAdapter;
52 bool isAdapterConnected
;
53 char username
[IDENTIFIER_LENGTH
];
54 char password
[IDENTIFIER_LENGTH
];
57 static List cacheList
;
58 //Head of MultiDsn List
59 struct MultiDSN
*multi_adapter_head
;
63 SqlGwConnection(){innerConn
= NULL
; mode
= OSYNC
; multi_adapter_head
= NULL
; noOfCon
= 0; }
66 bool isTableCached(char *name
);
67 void setTxnHandler(GwHandler hdlr
) { txnHdlr
= hdlr
; }
68 GwHandler
getTxnHandler() { return txnHdlr
; }
70 DbRetVal
connect (char *user
, char * pass
);
72 DbRetVal
disconnect();
78 DbRetVal
beginTrans (IsolationLevel isoLevel
, TransSyncMode mode
= OSYNC
);
80 friend class SqlFactory
;
81 bool isCsqlConnected(){ return isCSqlConnected
;}
82 bool isAdptConnected(){ return isAdapterConnected
;}
83 void createAdapters(SqlGwConnection
*gateway
);
84 void setAdapter(AbsSqlConnection
*conn
, char *dsn
);
85 AbsSqlConnection
* getAdapterConnection(char *dsn
);
87 DbRetVal
connectCSqlIfNotConnected();
88 DbRetVal
connectAdapterIfNotConnected();
89 DbRetVal
populateCachedTableList();
90 //Note::forced to implement this as it is pure virtual in base class
91 Connection
& getConnObject(){ return dummyConn
; }