harvester/contentinfodb/src/contentinfodb.cpp
changeset 23 d4d56f5e7c55
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/harvester/contentinfodb/src/contentinfodb.cpp	Tue Oct 05 13:15:12 2010 +0530
@@ -0,0 +1,141 @@
+/*
+ * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description:  Implementation of contentinfodb 
+ *
+ */
+#include "contentinfodb.h"
+#include <qdir.h>
+#include <qvariant.h>
+#include <qsqlquery.h>
+#include <qstringlist.h>
+
+
+ContentInfoDb *ContentInfoDb::m_instance = 0;
+int ContentInfoDb::m_instanceCounter = 0;
+
+// ---------------------------------------------------------------------------
+// ContentInfoDb::ContentInfoDb()
+// ---------------------------------------------------------------------------
+//
+ContentInfoDb::ContentInfoDb()
+    {
+    m_db = QSqlDatabase::addDatabase(DATABASETYPE, CONNECTIONNAME);
+    m_db.setDatabaseName(DBNAME);
+    }
+// ---------------------------------------------------------------------------
+// ContentInfoDb::~ContentInfoDb()
+// ---------------------------------------------------------------------------
+//
+ContentInfoDb::~ContentInfoDb()
+    {
+    Close();
+    }
+// ---------------------------------------------------------------------------
+// ContentInfoDb::writeData()
+// ---------------------------------------------------------------------------
+//
+bool ContentInfoDb::writeData(QString query)
+    {
+    if (Open())
+        {
+        QSqlQuery q(QSqlDatabase::database(CONNECTIONNAME));
+        q.prepare(query);
+        if (q.exec())
+            {
+            emit dbUpdated();
+            return true;
+            }
+        return false;
+        }
+    return false;
+    }
+// ---------------------------------------------------------------------------
+// ContentInfoDb::readData()
+// ---------------------------------------------------------------------------
+//
+QStringList ContentInfoDb::readData(QString query)
+    {
+    QStringList list;
+    if (Open())
+        {        
+        QSqlQuery q(QSqlDatabase::database(CONNECTIONNAME));
+        q.prepare(query);
+        q.exec();
+        while (q.next())
+            {
+            list.append(q.value(0).toString());  
+            }
+        }
+    return list;
+    }
+// ---------------------------------------------------------------------------
+// ContentInfoDb::readStringData()
+// ---------------------------------------------------------------------------
+//
+QString ContentInfoDb::readStringData(QString query)
+    {
+    if (Open())
+        {
+        QSqlQuery q(QSqlDatabase::database(CONNECTIONNAME));
+        q.prepare(query);
+        q.exec();
+        q.next();
+        return q.value(0).toString();
+        }
+    return QString();
+    }
+// ---------------------------------------------------------------------------
+// ContentInfoDb::createTable()
+// ---------------------------------------------------------------------------
+//
+void ContentInfoDb::createTable(QString tablename, QString query)
+    {
+    if (!m_db.tables().contains(tablename))
+        {
+        QSqlQuery q(query, m_db);
+        }
+    }
+// ---------------------------------------------------------------------------
+// ContentInfoDb::open()
+// ---------------------------------------------------------------------------
+//    
+bool ContentInfoDb::Open()
+    {
+    if (!m_db.isValid())
+        {
+        Close();
+        return false;
+        }
+    if (!m_db.isOpen())
+        {
+        if (!m_db.open())
+            {
+            Close();
+            return false;
+            }
+        }
+    if (!m_db.tables().contains(MAINTABLENAME))
+        {
+        QSqlQuery q(QUERYCREATEMAINTABLE, m_db);
+        }
+    return true;
+    }
+// ---------------------------------------------------------------------------
+// ContentInfoDb::Close()
+// ---------------------------------------------------------------------------
+//
+void ContentInfoDb::Close()
+    {
+    m_db.close();
+    }