summaryrefslogtreecommitdiffstats
path: root/kexi/kexidb/drivermanager.h
diff options
context:
space:
mode:
authortpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-01-20 01:29:50 +0000
committertpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-01-20 01:29:50 +0000
commit8362bf63dea22bbf6736609b0f49c152f975eb63 (patch)
tree0eea3928e39e50fae91d4e68b21b1e6cbae25604 /kexi/kexidb/drivermanager.h
downloadkoffice-8362bf63dea22bbf6736609b0f49c152f975eb63.tar.gz
koffice-8362bf63dea22bbf6736609b0f49c152f975eb63.zip
Added old abandoned KDE3 version of koffice
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/koffice@1077364 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kexi/kexidb/drivermanager.h')
-rw-r--r--kexi/kexidb/drivermanager.h104
1 files changed, 104 insertions, 0 deletions
diff --git a/kexi/kexidb/drivermanager.h b/kexi/kexidb/drivermanager.h
new file mode 100644
index 00000000..fa78c841
--- /dev/null
+++ b/kexi/kexidb/drivermanager.h
@@ -0,0 +1,104 @@
+/* This file is part of the KDE project
+ Copyright (C) 2003 Daniel Molkentin <molkentin@kde.org>
+ Copyright (C) 2003 Joseph Wenninger <jowenn@kde.org>
+ Copyright (C) 2003-2006 Jaroslaw Staniek <js@iidea.pl>
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this program; see the file COPYING. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+*/
+
+#ifndef KEXIDB_DRIVER_MNGR_H
+#define KEXIDB_DRIVER_MNGR_H
+
+#include <qobject.h>
+#include <qcstring.h>
+#include <qmap.h>
+#include <qdict.h>
+
+#include <klibloader.h>
+#include <kservice.h>
+
+#include <kexidb/driver.h>
+
+namespace KexiDB {
+
+class DriverManagerInternal;
+class Connection;
+class ConnectionData;
+
+//! Database driver management, e.g. finding and loading drivers.
+class KEXI_DB_EXPORT DriverManager : public QObject, public KexiDB::Object
+{
+ public:
+ typedef QMap<QString, KService::Ptr> ServicesMap;
+
+ DriverManager();
+ virtual ~DriverManager();
+
+ /*! Tries to load db driver with named name \a name.
+ The name is case insensitive.
+ \return db driver, or 0 if error (then error message is also set) */
+ Driver* driver(const QString& name);
+
+ /*! returns list of available drivers names.
+ That drivers can be loaded by first use of driver() method. */
+ const QStringList driverNames();
+
+ /*! returns information list of available drivers.
+ That drivers can be loaded by first use of driver() method. */
+ const KexiDB::Driver::InfoMap driversInfo();
+
+ /*! \return information about driver's named with \a name.
+ The name is case insensitive.
+ You can check if driver information is not found calling
+ Info::name.isEmpty() (then error message is also set). */
+ KexiDB::Driver::Info driverInfo(const QString &name);
+
+ /*! \return service information about driver's named with \a name.
+ The name is case insensitive.
+ In most cases you can use driverInfo() instead. */
+ KService::Ptr serviceInfo(const QString &name);
+
+ /*! \return a map structure of the services. Not necessary for everyday use. */
+ const ServicesMap& services();
+
+ /*! Looks up a drivers list by MIME type of database file.
+ Only file-based database drivers are checked.
+ The lookup is case insensitive.
+ \return driver name or null string if no driver found.
+ */
+ QString lookupByMime(const QString &mimeType);
+
+ //! server error is set if there is error at KService level (useful for debugging)
+ virtual QString serverErrorMsg();
+ virtual int serverResult();
+ virtual QString serverResultName();
+
+ /*! HTML information about possible problems encountered.
+ It's displayed in 'details' section, if an error encountered.
+ Currently it contains a list of incompatible db drivers.
+ Used in KexiStartupHandler::detectDriverForFile(). */
+ QString possibleProblemsInfoMsg() const;
+
+ protected:
+ virtual void drv_clearServerResult();
+
+ private:
+ DriverManagerInternal *d_int;
+};
+
+} //namespace KexiDB
+
+#endif