01d14b8b7aa8b810efc6f553facd6b9f1d7b61ca
[toast/confclerk.git] / src / sql / sqlengine.h
1 /*
2  * Copyright (C) 2010 Ixonos Plc.
3  * Copyright (C) 2011 Philipp Spitzer, gregor herrmann
4  *
5  * This file is part of ConfClerk.
6  *
7  * ConfClerk is free software: you can redistribute it and/or modify it
8  * under the terms of the GNU General Public License as published by the Free
9  * Software Foundation, either version 2 of the License, or (at your option)
10  * any later version.
11  *
12  * ConfClerk is distributed in the hope that it will be useful, but
13  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14  * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
15  * more details.
16  *
17  * You should have received a copy of the GNU General Public License along with
18  * ConfClerk.  If not, see <http://www.gnu.org/licenses/>.
19  */
20 #ifndef SQLENGINE_H
21 #define SQLENGINE_H
22
23 #include <QObject>
24 #include <QHash>
25
26 class QSqlDatabase;
27
28 class SqlEngine : public QObject
29 {
30     Q_OBJECT
31     public:
32         SqlEngine(QObject *aParent = NULL);
33         ~SqlEngine();
34         static void initialize();
35         static void addConferenceToDB(QHash<QString,QString> &aConference);
36         static void addEventToDB(QHash<QString,QString> &aEvent);
37         static void addPersonToDB(QHash<QString,QString> &aPerson);
38         static void addLinkToDB(QHash<QString,QString> &aLink);
39         static void addRoomToDB(QHash<QString,QString> &aRoom);
40         static void deleteConference(int id);
41
42         static bool beginTransaction();
43         static bool commitTransaction();
44
45         // search Events for ....
46         static int searchEvent(int conferenceId, const QHash<QString,QString> &columns, const QString &keyword);
47     private:
48         static QString login(const QString &aDatabaseType, const QString &aDatabaseName);
49         static bool execQuery(QSqlDatabase &aDatabase, const QString &aQuery);
50         static bool execQueryWithParameter(QSqlDatabase &aDatabase, const QString &aQuery, const QHash<QString, QVariant>& params);
51
52         static void checkConferenceMap(QSqlDatabase &aDatabase);
53 };
54
55 #endif /* SQLENGINE_H */
56