summaryrefslogtreecommitdiff
path: root/libsql/osqlmanager.h
Side-by-side diff
Diffstat (limited to 'libsql/osqlmanager.h') (more/less context) (ignore whitespace changes)
-rw-r--r--libsql/osqlmanager.h62
1 files changed, 62 insertions, 0 deletions
diff --git a/libsql/osqlmanager.h b/libsql/osqlmanager.h
new file mode 100644
index 0000000..b3d8d69
--- a/dev/null
+++ b/libsql/osqlmanager.h
@@ -0,0 +1,62 @@
+
+#ifndef OSQL_MANAGER_H
+#define OSQL_MANAGER_H
+
+#include <qobject.h>
+
+#include "osqlbackend.h"
+
+/**
+ * OSQLManager is responsible for loading
+ * and unloading, querying different OSQL
+ * services
+ * Load a OSQLDriver and delete it yourself
+ *
+ */
+class OSQLDriver;
+class OSQLManager : public QObject {
+ Q_OBJECT
+public:
+ /**
+ * Empty c'tor
+ */
+ OSQLManager();
+
+ /**
+ * Query the Manager for different backends
+ */
+ OSQLBackEnd::ValueList queryBackEnd();
+
+ /**
+ * Load a backend with it's name from param name
+ */
+ OSQLDriver* load( const QString& name );
+
+ /**
+ * Load a OSQLDevice from const reference of OSQLBackEnd
+ */
+ OSQLDriver* load( const OSQLBackEnd& );
+
+ /**
+ * loads the Opie standard backend
+ */
+ OSQLDriver *standard();
+
+ /**
+ * register path to the search path list
+ * When querying for services we scan all the
+ * registered path for backends
+ */
+ void registerPath( const QString& path );
+
+ /**
+ * unregisterPath from the search path list
+ */
+ bool unregisterPath( const QString& path );
+private:
+ OSQLBackEnd::ValueList builtIn()const;
+ OSQLBackEnd::ValueList m_list;
+ QStringList m_path;
+};
+
+#endif