summaryrefslogtreecommitdiff
path: root/libopie2/opiedb
Side-by-side diff
Diffstat (limited to 'libopie2/opiedb') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiedb/TODO1
-rw-r--r--libopie2/opiedb/opiedb.pro2
-rw-r--r--libopie2/opiedb/osqlbackend.cpp2
-rw-r--r--libopie2/opiedb/osqlbackend.h8
-rw-r--r--libopie2/opiedb/osqlbackendmanager.cpp8
-rw-r--r--libopie2/opiedb/osqlbackendmanager.h6
-rw-r--r--libopie2/opiedb/osqldriver.cpp2
-rw-r--r--libopie2/opiedb/osqldriver.h7
-rw-r--r--libopie2/opiedb/osqlerror.cpp2
-rw-r--r--libopie2/opiedb/osqlerror.h5
-rw-r--r--libopie2/opiedb/osqlitedriver.cpp9
-rw-r--r--libopie2/opiedb/osqlitedriver.h8
-rw-r--r--libopie2/opiedb/osqlmanager.cpp6
-rw-r--r--libopie2/opiedb/osqlmanager.h6
-rw-r--r--libopie2/opiedb/osqlquery.cpp2
-rw-r--r--libopie2/opiedb/osqlquery.h8
-rw-r--r--libopie2/opiedb/osqlresult.cpp2
-rw-r--r--libopie2/opiedb/osqlresult.h8
-rw-r--r--libopie2/opiedb/osqltable.cpp2
-rw-r--r--libopie2/opiedb/osqltable.h7
20 files changed, 95 insertions, 6 deletions
diff --git a/libopie2/opiedb/TODO b/libopie2/opiedb/TODO
index ca04ac6..8b86187 100644
--- a/libopie2/opiedb/TODO
+++ b/libopie2/opiedb/TODO
@@ -1,9 +1,10 @@
* something like Capabilities of a Driver
- ROWID
- How to declare INTEGER PRIMARY KEY
- Abstract from implementation of some dbs
- provides( Type::What )
+ - emit signals directly on arriving of data
* OSQLDriver DriverVersion - DatabaseVersion
* Better OSQLQueries
- more than OSQLRawQuery \ No newline at end of file
diff --git a/libopie2/opiedb/opiedb.pro b/libopie2/opiedb/opiedb.pro
index c773d6c..147435a 100644
--- a/libopie2/opiedb/opiedb.pro
+++ b/libopie2/opiedb/opiedb.pro
@@ -16,17 +16,17 @@ SOURCES = osqlbackend.cpp \
osqlmanager.cpp \
osqlquery.cpp \
osqlresult.cpp \
osqltable.cpp \
osqlbackendmanager.cpp \
osqlitedriver.cpp
INTERFACES =
TARGET = opiedb2
-VERSION = 1.8.2
+VERSION = 1.9.0
INCLUDEPATH = $(OPIEDIR)/include
DEPENDPATH = $(OPIEDIR)/include
LIBS += -lopiecore2 -lqpe -lsqlite
!contains( platform, x11 ) {
include ( $(OPIEDIR)/include.pro )
}
diff --git a/libopie2/opiedb/osqlbackend.cpp b/libopie2/opiedb/osqlbackend.cpp
index d6c39a9..6e5159f 100644
--- a/libopie2/opiedb/osqlbackend.cpp
+++ b/libopie2/opiedb/osqlbackend.cpp
@@ -1,11 +1,13 @@
#include "osqlbackend.h"
+using namespace Opie::DB;
+
OSQLBackEnd::OSQLBackEnd( const QString& name,
const QString& vendor,
const QString& license,
const QCString& lib )
: m_name( name), m_vendor( vendor), m_license( license ), m_lib( lib )
{
m_default = false;
diff --git a/libopie2/opiedb/osqlbackend.h b/libopie2/opiedb/osqlbackend.h
index ad879a4..28451b6 100644
--- a/libopie2/opiedb/osqlbackend.h
+++ b/libopie2/opiedb/osqlbackend.h
@@ -1,16 +1,19 @@
#ifndef OSQL_BACKEND_H
#define OSQL_BACKEND_H
#include <qcstring.h>
#include <qstring.h>
#include <qvaluelist.h>
+
+namespace Opie {
+namespace DB {
/**
* OSQLBackEnd represents an available backend
* to the Opie Database Service
* It's used to easily extend OSQL services by
* 3rd party plugins.
* It's used to show
*/
class OSQLBackEnd /*: public QShared */ {
@@ -65,11 +68,16 @@ public:
private:
QString m_name;
QString m_vendor;
QString m_license;
QCString m_lib;
bool m_default :1;
int m_pref;
+ class Private;
+ Private *d;
};
+}
+}
+
#endif
diff --git a/libopie2/opiedb/osqlbackendmanager.cpp b/libopie2/opiedb/osqlbackendmanager.cpp
index 95ed77b..fc18e07 100644
--- a/libopie2/opiedb/osqlbackendmanager.cpp
+++ b/libopie2/opiedb/osqlbackendmanager.cpp
@@ -1,13 +1,17 @@
#include <qdir.h>
#include <qmap.h>
#include "osqlbackendmanager.h"
+/**
+ * \todo FIXME CONFIG!!!
+ */
+
namespace {
class Config {
typedef QMap<QString, QString> List;
public:
Config( const QString& fileName );
/**
* Quite simple layout in nature
* BeginFile
@@ -39,16 +43,20 @@ namespace {
m_list.insert( test[0], test[2] );
}
return true;
}
QString Config::value( const QString& key ) {
return m_list[key];
}
};
+
+
+using namespace Opie::DB;
+
OSQLBackEndManager::OSQLBackEndManager( const QStringList& path )
:m_path( path )
{
}
OSQLBackEndManager::~OSQLBackEndManager() {
}
/**
* scan dirs
diff --git a/libopie2/opiedb/osqlbackendmanager.h b/libopie2/opiedb/osqlbackendmanager.h
index bc357a9..00e81fc 100644
--- a/libopie2/opiedb/osqlbackendmanager.h
+++ b/libopie2/opiedb/osqlbackendmanager.h
@@ -1,20 +1,26 @@
#ifndef OSQL_BACKEND_MANAGER_H
#define OSQL_BACKEND_MANAGER_H
#include <qstringlist.h>
#include "osqlbackend.h"
+namespace Opie {
+namespace DB {
+
class OSQLBackEndManager {
public:
OSQLBackEndManager(const QStringList& path );
~OSQLBackEndManager();
OSQLBackEnd::ValueList scan();
private:
OSQLBackEnd::ValueList scanDir( const QString& dir );
OSQLBackEnd file2backend( const QString& file );
class OSQLBackEndManagerPrivate;
OSQLBackEndManagerPrivate* d;
QStringList m_path;
};
+}
+}
+
#endif
diff --git a/libopie2/opiedb/osqldriver.cpp b/libopie2/opiedb/osqldriver.cpp
index 258c116..a6dae77 100644
--- a/libopie2/opiedb/osqldriver.cpp
+++ b/libopie2/opiedb/osqldriver.cpp
@@ -1,12 +1,14 @@
#include <qpe/qlibrary.h>
#include "osqldriver.h"
+using namespace Opie::DB;
+
OSQLDriver::OSQLDriver( QLibrary* lib )
: QObject(), m_lib(lib) {
}
OSQLDriver::~OSQLDriver() {
delete m_lib;
}
bool OSQLDriver::sync() {
return true;
diff --git a/libopie2/opiedb/osqldriver.h b/libopie2/opiedb/osqldriver.h
index 68d8ee6..492b8dd 100644
--- a/libopie2/opiedb/osqldriver.h
+++ b/libopie2/opiedb/osqldriver.h
@@ -2,16 +2,20 @@
#define OSQL_DRIVER_H
#include <qobject.h>
#include <qstring.h>
#include "osqltable.h"
class QLibrary;
+
+namespace Opie {
+namespace DB {
+
class OSQLResult;
class OSQLQuery;
class OSQLError;
/**
* A OSQLDriver implements the communication with
* a database.
* After you queried and loaded a driver you can
@@ -79,9 +83,12 @@ public:
private:
QLibrary* m_lib;
class OSQLDriverPrivate;
OSQLDriverPrivate *d;
};
+}
+}
+
#endif
diff --git a/libopie2/opiedb/osqlerror.cpp b/libopie2/opiedb/osqlerror.cpp
index 3890a50..165ba65 100644
--- a/libopie2/opiedb/osqlerror.cpp
+++ b/libopie2/opiedb/osqlerror.cpp
@@ -1,10 +1,12 @@
#include "osqlerror.h"
+using namespace Opie::DB;
+
OSQLError::OSQLError( const QString& driverText,
const QString& driverDatabaseText,
int type, int subType )
: m_drvText( driverText ), m_drvDBText( driverDatabaseText ),
m_type( type ), m_number( subType )
{
}
OSQLError::~OSQLError() {
diff --git a/libopie2/opiedb/osqlerror.h b/libopie2/opiedb/osqlerror.h
index 35a4368..8fa973d 100644
--- a/libopie2/opiedb/osqlerror.h
+++ b/libopie2/opiedb/osqlerror.h
@@ -1,14 +1,17 @@
#ifndef OSQL_ERROR_H
#define OSQL_ERROR_H
#include <qstring.h>
#include <qvaluelist.h>
+
+namespace Opie {
+namespace DB {
/**
* OSQLError is the base class of all errors
*/
class OSQLError {
public:
typedef QValueList<OSQLError> ValueList;
enum Type { None = 0, // NoError
Internal, // Internal Error in OSQL
@@ -51,9 +54,11 @@ private:
QString m_drvText;
QString m_drvDBText;
int m_type;
int m_number;
class OSQLErrorPrivate;
OSQLErrorPrivate* d;
};
+}
+}
#endif
diff --git a/libopie2/opiedb/osqlitedriver.cpp b/libopie2/opiedb/osqlitedriver.cpp
index 6141504..47bc250 100644
--- a/libopie2/opiedb/osqlitedriver.cpp
+++ b/libopie2/opiedb/osqlitedriver.cpp
@@ -35,16 +35,19 @@
#include <stdlib.h>
// fromLocal8Bit() does not work as expected. Thus it
// is replaced by fromLatin1() (eilers)
#define __BUGGY_LOCAL8BIT_
+using namespace Opie::DB;
+using namespace Opie::DB::Private;
+
namespace {
struct Query {
OSQLError::ValueList errors;
OSQLResultItem::ValueList items;
OSQLiteDriver *driver;
};
}
@@ -81,25 +84,25 @@ void OSQLiteDriver::setOptions( const QStringList& ) {
/*
* try to open a db specified via setUrl
* and options
*/
bool OSQLiteDriver::open() {
char *error;
- odebug << "OSQLiteDriver::open: about to open" << oendl;
+ qDebug("OSQLiteDriver::open: about to open");
m_sqlite = sqlite_open(m_url.local8Bit(),
0,
&error );
/* failed to open */
if (m_sqlite == 0l ) {
// FIXME set the last error
- owarn << "OSQLiteDriver::open: " << error << oendl;
+ qWarning("OSQLiteDriver::open: %s", error );
free( error );
return false;
}
return true;
}
/* close the db
@@ -121,17 +124,17 @@ OSQLResult OSQLiteDriver::query( OSQLQuery* qu) {
OSQLResult result( OSQLResult::Failure );
return result;
}
Query query;
query.driver = this;
char *err;
/* SQLITE_OK 0 if return code > 0 == failure */
if ( sqlite_exec(m_sqlite, qu->query(),&call_back, &query, &err) > 0 ) {
- owarn << "OSQLiteDriver::query: Error while executing" << oendl;
+ qWarning("OSQLiteDriver::query: Error while executing");
free(err );
// FixMe Errors
}
OSQLResult result(OSQLResult::Success,
query.items,
query.errors );
return result;
diff --git a/libopie2/opiedb/osqlitedriver.h b/libopie2/opiedb/osqlitedriver.h
index 6984539..3e1325b 100644
--- a/libopie2/opiedb/osqlitedriver.h
+++ b/libopie2/opiedb/osqlitedriver.h
@@ -2,16 +2,20 @@
#define OSQL_LITE_DRIVER_H
#include <sqlite.h>
#include "osqldriver.h"
#include "osqlerror.h"
#include "osqlresult.h"
+namespace Opie {
+namespace DB {
+namespace Private {
+
class OSQLiteDriver : public OSQLDriver {
Q_OBJECT
public:
OSQLiteDriver( QLibrary *lib = 0l );
~OSQLiteDriver();
QString id()const;
void setUserName( const QString& );
void setPassword( const QString& );
@@ -26,9 +30,13 @@ private:
OSQLError m_lastE;
OSQLResult m_result;
OSQLResultItem m_items;
int handleCallBack( int, char**, char** );
static int call_back( void*, int, char**, char** );
QString m_url;
sqlite *m_sqlite;
};
+}
+}
+}
+
#endif
diff --git a/libopie2/opiedb/osqlmanager.cpp b/libopie2/opiedb/osqlmanager.cpp
index 766ebe1..990d258 100644
--- a/libopie2/opiedb/osqlmanager.cpp
+++ b/libopie2/opiedb/osqlmanager.cpp
@@ -1,15 +1,17 @@
#include <stdlib.h>
#include "osqlmanager.h"
#include "osqlbackendmanager.h"
#include "osqlitedriver.h"
+using namespace Opie::DB;
+
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() )
@@ -26,28 +28,28 @@ OSQLBackEnd::ValueList OSQLManager::queryBackEnd() {
/*
* 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();
+ driver = new Opie::DB::Private::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();
+ driver = new Opie::DB::Private::OSQLiteDriver;
return driver;
}
/*
* let's find the a default with the highes preference
*/
OSQLDriver* OSQLManager::standard() {
OSQLDriver* driver =0l;
diff --git a/libopie2/opiedb/osqlmanager.h b/libopie2/opiedb/osqlmanager.h
index 5323b14..ca73c64 100644
--- a/libopie2/opiedb/osqlmanager.h
+++ b/libopie2/opiedb/osqlmanager.h
@@ -3,16 +3,18 @@
#define OSQL_MANAGER_H
#include <qobject.h>
#include <qstringlist.h>
#include "osqlbackend.h"
+namespace Opie {
+namespace DB {
/**
* OSQLManager is responsible for loading
* and unloading, querying different OSQL
* services
* Load a OSQLDriver and delete it yourself
*
*/
class OSQLDriver;
@@ -54,11 +56,15 @@ public:
/**
* unregisterPath from the search path list
*/
bool unregisterPath( const QString& path );
private:
OSQLBackEnd::ValueList builtIn()const;
OSQLBackEnd::ValueList m_list;
QStringList m_path;
+ class Private;
+ Private *d;
};
+}
+}
#endif
diff --git a/libopie2/opiedb/osqlquery.cpp b/libopie2/opiedb/osqlquery.cpp
index ecd53f2..8270c4c 100644
--- a/libopie2/opiedb/osqlquery.cpp
+++ b/libopie2/opiedb/osqlquery.cpp
@@ -1,11 +1,13 @@
#include "osqlquery.h"
+using namespace Opie::DB;
+
OSQLQuery::OSQLQuery() {
}
OSQLQuery::~OSQLQuery() {
}
OSQLRawQuery::OSQLRawQuery(const QString& query)
: OSQLQuery(), m_query( query ) {
diff --git a/libopie2/opiedb/osqlquery.h b/libopie2/opiedb/osqlquery.h
index 63c26b0..0265d2b 100644
--- a/libopie2/opiedb/osqlquery.h
+++ b/libopie2/opiedb/osqlquery.h
@@ -2,16 +2,19 @@
#ifndef OSQL_QUERY_H
#define OSQL_QUERY_H
#include <qmap.h>
#include <qvaluelist.h>
#include <qstring.h>
+namespace Opie {
+namespace DB {
+
/** I'm not happy with them
class OSQLQueryOrder {
public:
typedef QValueList<OSQLQueryOrder> ValueList;
OSQLQueryOrder(const QString& table = QString::null );
OSQLQueryOrder( const OSQLQueryOrder& );
~OSQLQueryOrder();
void setOrderFields( const QStringList& list );
@@ -42,16 +45,19 @@ private:
};
*/
class OSQLQuery {
public:
OSQLQuery();
virtual ~OSQLQuery();
virtual QString query()const = 0;
+private:
+ class Private;
+ Private *d;
};
class OSQLRawQuery : public OSQLQuery {
public:
OSQLRawQuery( const QString& query );
~OSQLRawQuery();
QString query() const;
private:
@@ -114,9 +120,11 @@ public:
*/
/* replaces all previous set Values */
/*
void setValue( const QString& field, const QString& value );
void setValue( const QMap<QString, QString> &fields );
QString query() const;
};
*/
+}
+}
#endif
diff --git a/libopie2/opiedb/osqlresult.cpp b/libopie2/opiedb/osqlresult.cpp
index 42da356..bad7d8b 100644
--- a/libopie2/opiedb/osqlresult.cpp
+++ b/libopie2/opiedb/osqlresult.cpp
@@ -1,11 +1,13 @@
#include "osqlresult.h"
+using namespace Opie::DB;
+
OSQLResultItem::OSQLResultItem( const TableString& string,
const TableInt& Int)
: m_string( string ), m_int( Int )
{
}
OSQLResultItem::~OSQLResultItem() {
}
diff --git a/libopie2/opiedb/osqlresult.h b/libopie2/opiedb/osqlresult.h
index 9c9efa2..fc6f01a 100644
--- a/libopie2/opiedb/osqlresult.h
+++ b/libopie2/opiedb/osqlresult.h
@@ -2,16 +2,20 @@
#define OSQL_RESULT_H
#include <qdatetime.h>
#include <qmap.h>
#include <qvaluelist.h>
#include "osqlerror.h"
+
+namespace Opie {
+namespace DB {
+
/**
* ResultItem represents one row of the resulting answer
*/
class OSQLResultItem {
public:
typedef QValueList<OSQLResultItem> ValueList;
/**
* TableString is used to establish the relations
@@ -102,11 +106,15 @@ public:
OSQLResultItem next();
bool atEnd();
OSQLResultItem::ValueList::ConstIterator iterator()const;
private:
enum State m_state;
OSQLResultItem::ValueList m_list;
OSQLError::ValueList m_error;
OSQLResultItem::ValueList::Iterator it;
+ class Private;
+ Private *d;
};
+}
+}
#endif
diff --git a/libopie2/opiedb/osqltable.cpp b/libopie2/opiedb/osqltable.cpp
index cde40f4..117cf21 100644
--- a/libopie2/opiedb/osqltable.cpp
+++ b/libopie2/opiedb/osqltable.cpp
@@ -1,10 +1,12 @@
#include "osqltable.h"
+using namespace Opie::DB;
+
OSQLTableItem::OSQLTableItem() {}
OSQLTableItem::OSQLTableItem( enum Type type,
const QString& field,
const QVariant& var)
: m_type( type ), m_field( field ), m_var( var )
{
}
diff --git a/libopie2/opiedb/osqltable.h b/libopie2/opiedb/osqltable.h
index 87f7e74..86c30dd 100644
--- a/libopie2/opiedb/osqltable.h
+++ b/libopie2/opiedb/osqltable.h
@@ -1,15 +1,17 @@
#ifndef OSQL_TABLE_H
#define OSQL_TABLE_H
#include <qstring.h>
#include <qvaluelist.h>
#include <qvariant.h>
+namespace Opie {
+namespace DB {
/**
* OSQLTableItem saves one column of a complete
* table
*/
class OSQLTableItem {
public:
typedef QValueList<OSQLTableItem> ValueList;
/**
@@ -85,11 +87,16 @@ public:
*/
OSQLTableItem::ValueList columns() const;
QString tableName()const;
private:
QString m_table;
OSQLTableItem::ValueList m_list;
+ class Private;
+ Private *d;
};
+}
+}
+
#endif