From 616e919ff6aea6a30e18edb37128c229e806beae Mon Sep 17 00:00:00 2001
From: mickeyl <mickeyl>
Date: Sun, 10 Aug 2003 15:40:31 +0000
Subject: merge zeckes libsql into libopie2

---
(limited to 'libopie2/opiedb/osqlmanager.cpp')

diff --git a/libopie2/opiedb/osqlmanager.cpp b/libopie2/opiedb/osqlmanager.cpp
new file mode 100644
index 0000000..b0fea04
--- a/dev/null
+++ b/libopie2/opiedb/osqlmanager.cpp
@@ -0,0 +1,83 @@
+
+#include <stdlib.h>
+
+#include "osqlbackend.h"
+#include "osqldriver.h"
+#include "osqlmanager.h"
+#include "osqlbackendmanager.h"
+#include "osqlitedriver.h"
+
+OSQLManager::OSQLManager() {
+}
+OSQLBackEnd::ValueList OSQLManager::queryBackEnd() {
+    m_list.clear();
+    QString opie = QString::fromLatin1( getenv("OPIEDIR") );
+    QString qpe = QString::fromLatin1( getenv("QPEDIR") );
+
+    if ( !m_path.contains(opie) && !opie.isEmpty() )
+        m_path << opie;
+    if ( !m_path.contains(qpe) && !qpe.isEmpty() )
+        m_path << qpe;
+
+    OSQLBackEndManager mng( m_path );
+    m_list = mng.scan();
+    m_list += builtIn();
+
+    return m_list;
+}
+/*
+ * loading dso's is currently not enabled due problems with QLibrary
+ * beeing in libqpe and not libqte
+ */
+OSQLDriver* OSQLManager::load( const QString& name ) {
+    OSQLDriver* driver = 0l;
+
+    if ( name == "SQLite" ) {
+        driver = new OSQLiteDriver();
+    }
+    return driver;
+}
+/*
+ * same as above
+ */
+OSQLDriver* OSQLManager::load( const OSQLBackEnd& end) {
+    OSQLDriver *driver = 0l;
+    if ( end.library() == "builtin" &&
+         end.name() == "SQLite" )
+        driver = new OSQLiteDriver();
+
+    return driver;
+}
+/*
+ * let's find the a default with the highes preference
+ */
+OSQLDriver* OSQLManager::standard() {
+    OSQLDriver* driver =0l;
+    if ( m_list.isEmpty() ) queryBackEnd();
+    OSQLBackEnd::ValueList::Iterator it;
+    OSQLBackEnd back;
+    for ( it = m_list.begin(); it != m_list.end(); ++it ) {
+        if ( (*it).isDefault() &&
+             back.preference() < (*it).preference() ) {
+            back = (*it);
+        }
+    }
+    driver = load( back );
+    return driver;
+}
+void OSQLManager::registerPath( const QString& path ) {
+    m_path << path;
+}
+bool OSQLManager::unregisterPath( const QString& path ) {
+    m_path.remove( path );
+    return true;
+}
+OSQLBackEnd::ValueList OSQLManager::builtIn()const {
+    OSQLBackEnd::ValueList list;
+    // create the OSQLiteBackend
+    OSQLBackEnd back("SQLite","Opie e.V.","GPL", "builtin" );
+    back.setDefault( true );
+    back.setPreference( 50 );
+    list.append( back );
+    return list;
+}
--
cgit v0.9.0.2