00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef SQLLOGCONNECTION_H
00021 #define SQLLOGCONNECTION_H
00022 #include<CSql.h>
00023 #include<AbsSqlConnection.h>
00024 #include<SqlFactory.h>
00025 #include<Util.h>
00026 #include<Network.h>
00027
00028 class CachedTable{
00029 public:
00030 char tableName[IDENTIFIER_LENGTH];
00031 };
00032
00037 class SqlLogConnection : public AbsSqlConnection
00038 {
00039 Connection dummyConn;
00040
00041
00042 List logStore;
00043
00044
00045
00046 List prepareStore;
00047
00048
00049
00050
00051 List curPrepareStore;
00052
00053
00054 TransSyncMode syncMode;
00055
00056
00057 NetworkTable nwTable;
00058
00059 static UniqueID txnUID;
00060
00061 static List cacheList;
00062 DbRetVal populateCachedTableList();
00063
00064 public:
00065 SqlLogConnection(){innerConn = NULL; syncMode = ASYNC;}
00066
00067 bool isTableCached(char *name);
00068
00069
00070 Connection& getConnObject(){ return dummyConn; }
00071
00072 DbRetVal connect (char *user, char * pass);
00073
00074 DbRetVal disconnect();
00075
00076 DbRetVal commit();
00077
00078 DbRetVal rollback();
00079
00080 DbRetVal beginTrans (IsolationLevel isoLevel, TransSyncMode mode);
00081
00082 DbRetVal addPacket(BasePacket *pkt);
00083
00084 DbRetVal addPreparePacket(PacketPrepare *pkt);
00085 DbRetVal removePreparePacket(int stmtid);
00086
00087 DbRetVal setSyncMode(TransSyncMode mode);
00088 TransSyncMode getSyncMode() { return syncMode; }
00089 DbRetVal connectIfNotConnected() { return nwTable.connectIfNotConnected(); }
00090 DbRetVal sendAndReceive(NetworkPacketType type, char *packet, int length);
00091 friend class SqlFactory;
00092 };
00093
00094 #endif