--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/50_layers.sysdef.xml Tue May 04 12:39:38 2010 +0300
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<!DOCTYPE SystemDefinition SYSTEM "sysdef_1_5_1.dtd" [
+ <!ENTITY layer_real_source_path "sf/mw/browser" >
+]>
+
+<SystemDefinition name="browser" schema="1.5.1">
+ <systemModel>
+ <layer name="mw_layer">
+ <module name="browser">
+ <unit unitID="browser" mrp="" bldFile="&layer_real_source_path;/" name="browser" proFile="browser.pro" qmakeArgs="" filter=""/>
+ </module>
+ </layer>
+ </systemModel>
+</SystemDefinition>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/92_layers.sysdef.xml Tue May 04 12:39:38 2010 +0300
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<!DOCTYPE SystemDefinition SYSTEM "sysdef_1_5_1.dtd" [
+ <!ENTITY layer_real_source_path "sf/mw/browser" >
+]>
+
+<SystemDefinition name="browser" schema="1.5.1">
+ <systemModel>
+ <layer name="mw_layer">
+ <module name="browser">
+ <unit unitID="browser" mrp="" bldFile="&layer_real_source_path;/" name="browser" proFile="browser.pro" qmakeArgs="" filter=""/>
+ </module>
+ </layer>
+ </systemModel>
+</SystemDefinition>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/bookmarksengine/Bookmarkstestui/BookMarkServerTestui.cpp Tue May 04 12:39:38 2010 +0300
@@ -0,0 +1,106 @@
+/*
+* Copyright (c) 2010 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:
+*
+*/
+
+
+#include<BookMarkServerTestui.h>
+#include <bookmarkclient.h>
+//#include<bookmarks.h>
+BookMarkServerTestui::BookMarkServerTestui()
+ {
+ int sessionId=0;
+ obj=new BookmarksClientSide();
+ obj->connectToServer();
+ bool res=obj->getSessionId(sessionId);
+ }
+BookMarkServerTestui::~BookMarkServerTestui()
+ {
+ obj->closeServer();
+ delete(obj);
+ obj=NULL;
+ }
+void BookMarkServerTestui::buttonclicked()
+{
+ getop();
+
+}
+void BookMarkServerTestui::getop()
+ {
+ BookmarkLeaf* col=new BookmarkLeaf();
+ /* col->setTitle("TestT1");
+ col->setUrl("http://www.google.com");
+ QDate x(2010,01,19);
+ col->setDate(x);
+ col->setTag("GOOGLY");*/
+ QDate x(2010,01,19);
+ col->setUrl("http://www.google.com");
+ col->setTitle("TestT1");
+ col->setDate(x);
+ col->setTag("GOOGLY");
+ obj->AddBookmark(col);
+
+
+ }
+void BookMarkServerTestui::delbutton()
+ {
+
+ obj->DeleteBookmark("TestT1");
+ }
+void BookMarkServerTestui::fetchbutton()
+ {
+
+ //BookmarkLeaf* fin=obj->FetchBookmark("first");
+ }
+void BookMarkServerTestui::closeAll()
+ {
+ //obj->closeServer();
+
+ }
+void BookMarkServerTestui::yahooclicked()
+ {
+ /*BookmarkLeaf* BookmarkContent=new BookmarkLeaf();
+ BookmarkContent->setBookmarkTitle("second");
+ BookmarkContent->setBookmarkUrl("www.yahoo.com");
+ BookmarkContent->setLastUpdatedTime("11:10");
+ BookmarkContent->setBookmarkTag("HHHHHHO");*/
+ BookmarkLeaf* col=new BookmarkLeaf();
+ QDate x(2010,01,19);
+ col->setUrl("http://www.yahoo.com");
+ col->setTitle("TestT2");
+ col->setDate(x);
+ col->setTag("YAH");
+ obj->AddBookmark(col);
+
+ }
+void BookMarkServerTestui::nokiaclicked()
+ {
+ BookmarkLeaf* col=new BookmarkLeaf();
+ QDate x(2010,01,19);
+ col->setUrl("http://www.NOKIA.com");
+ col->setTitle("TestT3");
+ col->setDate(x);
+ col->setTag("NOK");
+ obj->AddBookmark(col);
+
+ }
+void BookMarkServerTestui::delyahoo()
+ {
+ obj->DeleteBookmark("TestT2");
+ }
+void BookMarkServerTestui::delnokia()
+ {
+ obj->DeleteBookmark("TestT3");
+ }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/bookmarksengine/Bookmarkstestui/BookMarkServerTestui.h Tue May 04 12:39:38 2010 +0300
@@ -0,0 +1,42 @@
+/*
+* Copyright (c) 2010 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:
+*
+*/
+
+#include<QtGui>
+class BookmarksClientSide;
+
+class BookMarkServerTestui: public QWidget
+{
+ Q_OBJECT
+public:
+ BookMarkServerTestui();
+ ~BookMarkServerTestui();
+
+private:
+ BookmarksClientSide* obj;
+ public slots:
+ void buttonclicked();
+ void delbutton();
+ void delyahoo();
+ void delnokia();
+ void fetchbutton();
+ void closeAll();
+ void yahooclicked();
+ void nokiaclicked();
+ public:
+ void getop();
+
+};
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/bookmarksengine/Bookmarkstestui/Bookmarkstestui.pro Tue May 04 12:39:38 2010 +0300
@@ -0,0 +1,94 @@
+#
+# Copyright (c) 2010 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:
+#
+
+TEMPLATE = app
+TARGET = Bookmarkstestui
+DEFINES += BUILDING_BOOKMARKS_TESTUI
+# establish relative root dir
+ROOT_DIR = $$PWD/../..
+include($$ROOT_DIR/browser.pri)
+
+QT += core gui network sql
+
+HEADERS += $$PWD/BookMarkServerTestui.h
+SOURCES += $$PWD/BookMarkServerTestui.cpp \
+ $$PWD/main.cpp
+
+
+
+isEmpty(BEDROCK_OUTPUT_DIR): {
+ symbian {
+ CONFIG(release,release|debug):BOOKMARKTEST_DATAMODEL_SERVER_OUTPUT_DIR=$$PWD/../../WrtBuild/Release
+ CONFIG(debug,release|debug):BOOKMARKTEST_DATAMODEL_SERVER_OUTPUT_DIR=$$PWD/../../WrtBuild/Debug
+
+ else {
+ CONFIG(release,release|debug):BOOKMARKTEST_DATAMODEL_SERVER_OUTPUT_DIR=$$ROOT_DIR/WrtBuild/Release
+ CONFIG(debug,release|debug):BOOKMARKTEST_DATAMODEL_SERVER_OUTPUT_DIR=$$ROOT_DIR/WrtBuild/Debug
+ }
+} else {
+ BOOKMARKTEST_DATAMODEL_SERVER_OUTPUT_DIR=$$BEDROCK_OUTPUT_DIR
+}
+CONFIG(release, debug|release):BOOKMARKTEST_DATAMODEL_SERVER_OUTPUT_DIR=$$PWD/../../../../../WrtBuild/Release
+CONFIG(debug, debug|release):BOOKMARKTEST_DATAMODEL_SERVER_OUTPUT_DIR=$$PWD/../../../../../WrtBuild/Debug
+
+QMAKE_RPATHDIR += $$BOOKMARKTEST_DATAMODEL_SERVER_OUTPUT_DIR/bin
+QMAKE_LIBDIR += $$BOOKMARKTEST_DATAMODEL_SERVER_OUTPUT_DIR/bin
+
+
+
+INCLUDEPATH += $$PWD $$PWD/../bookmarksclient/inc $$PWD/../../browsercore/appfw/Api/Bookmarks $$PWD/../../browsercore/appfw/Api/Common $$PWD/../../browsercore/appfw/Api/Dialogs $$PWD/../../browsercore/appfw/Api/Controls $$PWD/../../browsercore/appfw/Api/Managers $$PWD/../../browsercore/appfw/Api/Transitions $$PWD/../../browsercore/appfw/Api/Views $$PWD/../../browsercore/appfw/Common
+
+LIBS += -lBookMarksClient
+
+# Use IPC components from import directory.
+include($$PWD/../../../../../import/import.pri)
+LIBS += -lwrtserviceipcclient
+LIBS += -lwrtserviceipcserver
+
+CONFIG(gcov) {
+ LIBS += -lgcov
+ QMAKE_CXXFLAGS += -fprofile-arcs -ftest-coverage
+ message( "building for coverage statics" )
+}
+
+
+OBJECTS_DIR = $$BOOKMARKTEST_DATAMODEL_SERVER_OUTPUT_DIR/BookMarkServerTest/tmp
+DESTDIR = $$BOOKMARKTEST_DATAMODEL_SERVER_OUTPUT_DIR/bin
+MOC_DIR = $$BOOKMARKTEST_DATAMODEL_SERVER_OUTPUT_DIR/BookMarkServerTest/tmp
+RCC_DIR = $$BOOKMARKTEST_DATAMODEL_SERVER_OUTPUT_DIR/BookMarkServerTest/tmp
+TEMPDIR = $$BOOKMARKTEST_DATAMODEL_SERVER_OUTPUT_DIR/BookMarkServerTest/build
+
+
+
+
+CONFIG (maemo) {
+ include(../../../../cwrt-maemo.pri)
+}
+
+symbian: {
+ TARGET.UID3 = 0x102C2774
+ TARGET.VID = VID_DEFAULT
+ TARGET.EPOCALLOWDLLDATA = 1
+ TARGET.CAPABILITY = All -TCB -DRM -AllFiles
+
+ INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE
+ LIBS += -lefsrv -lcaf -lcafutils
+
+}
+
+symbian: {
+ INCLUDEPATH += $$PWD $$MW_LAYER_SYSTEMINCLUDE $$APP_LAYER_SYSTEMINCLUDE
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/bookmarksengine/Bookmarkstestui/main.cpp Tue May 04 12:39:38 2010 +0300
@@ -0,0 +1,76 @@
+/*
+* 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:
+*
+*/
+
+
+#include <QCoreApplication>
+#include<BookMarkServerTestui.h>
+#include<QtGui>
+
+int main( int argc, char **argv )
+{
+ QApplication app(argc, argv);
+ BookMarkServerTestui obj;
+ //QWidget* win=new QWidget();
+ QWidget win;
+ win.setWindowTitle("BOOKMARKS SERVER TESTUI");
+ QPushButton* butadd=new QPushButton("Add Bookmark Google" );
+ QPushButton* butadd1=new QPushButton("Add Bookmark yahoo" );
+ QPushButton* butadd2=new QPushButton("Add Bookmark Nokia" );
+
+ QPushButton* butdel=new QPushButton("del Bookmark Google" );
+ QPushButton* butdel1=new QPushButton("del Bookmark Yahoo" );
+ QPushButton* butdel2=new QPushButton("del Bookmark Nokia" );
+
+ QPushButton* butfetch=new QPushButton("Fetch Bookmark" );
+ QPushButton* butexit=new QPushButton("Exit Server" );
+ QPushButton* Exitapp=new QPushButton("Exit UI" );
+ //Add
+ QObject::connect(butadd,SIGNAL(clicked()),&obj,SLOT(buttonclicked()));
+ QObject::connect(butadd1,SIGNAL(clicked()),&obj,SLOT(yahooclicked()));
+ QObject::connect(butadd2,SIGNAL(clicked()),&obj,SLOT(nokiaclicked()));
+
+ QObject::connect(butdel,SIGNAL(clicked()),&obj,SLOT(delbutton()));
+ QObject::connect(butdel1,SIGNAL(clicked()),&obj,SLOT(delyahoo()));
+ QObject::connect(butdel2,SIGNAL(clicked()),&obj,SLOT(delnokia()));
+
+
+ QObject::connect(butfetch,SIGNAL(clicked()),&obj,SLOT(fetchbutton()));
+ //QObject::connect(butexit,SIGNAL(clicked()),&obj,SLOT(closeAll()));
+ QObject::connect(Exitapp,SIGNAL(clicked()),&app,SLOT(quit()));
+
+
+ QVBoxLayout* lay=new QVBoxLayout();
+ lay->addWidget(butadd);
+ lay->addWidget(butadd1);
+ lay->addWidget(butadd2);
+ lay->addWidget(butdel);
+ lay->addWidget(butdel1);
+ lay->addWidget(butdel2);
+ lay->addWidget(butfetch);
+ //lay->addWidget(butexit);
+ lay->addWidget(Exitapp);
+
+ win.setLayout(lay);
+ //win->show();
+ win.showFullScreen();
+
+/* butadd->show();
+ butdel->show();
+ butfetch->show();*/
+ return app.exec();
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/bookmarksengine/bookmarksclient/bookmarksclient.pro Tue May 04 12:39:38 2010 +0300
@@ -0,0 +1,104 @@
+#
+# Copyright (c) 2010 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:
+#
+
+TEMPLATE = lib
+TARGET = BookMarksClient
+
+ROOT_DIR = $$PWD/../..
+include($$ROOT_DIR/browser.pri)
+
+DEFINES+= BUILDING_BOOKMARKS_CLIENT
+
+QT += core network xml sql
+HEADERS += $$PWD/inc/bookmarkclientdefs.h \
+ $$PWD/inc/bookmarkclient.h \
+ $$PWD/../commoninclude/bookmarkscommonengine.h
+SOURCES += $$PWD/src/bookmarkclient.cpp
+
+isEmpty(BEDROCK_OUTPUT_DIR): {
+ symbian {
+ CONFIG(release, debug|release):BOOKMARKSCLIENT_DATAMODEL_OUTPUT_DIR=$$PWD/../../WrtBuild/Release
+ CONFIG(debug, debug|release):BOOKMARKSCLIENT_DATAMODEL_OUTPUT_DIR= $$PWD/../../WrtBuild/Debug
+ else {
+ CONFIG(release, debug|release):BOOKMARKSCLIENT_DATAMODEL_OUTPUT_DIR=$$PWD/../../../../../WrtBuild/Release
+ CONFIG(debug, debug|release):BOOKMARKSCLIENT_DATAMODEL_OUTPUT_DIR= $$PWD/../../../../../WrtBuild/Debug
+ }
+} else {
+ BOOKMARKSCLIENT_DATAMODEL_OUTPUT_DIR = $$BEDROCK_OUTPUT_DIR
+}
+
+OBJECTS_DIR = $$BOOKMARKSCLIENT_DATAMODEL_OUTPUT_DIR/BookMarksClient/tmp
+DESTDIR = $$BOOKMARKSCLIENT_DATAMODEL_OUTPUT_DIR/bin
+MOC_DIR = $$BOOKMARKSCLIENT_DATAMODEL_OUTPUT_DIR/BookMarksClient/
+RCC_DIR = $$BOKMARKSCLIENT_DATAMODEL_OUTPUT_DIR/BookMarksClient/
+TEMPDIR = $$BOOKMARKSCLIENT_DATAMODEL_OUTPUT_DIR/BookMarksClient/build
+# QMAKE_LIBDIR = $$BOOKMARKSCLIENT_DATAMODEL_OUTPUT_DIR/bin
+
+INCLUDEPATH += $$PWD/inc $$PWD/../commoninclude $$PWD/../../ipc/serviceipc $$PWD/../../ipc/serviceipcserver
+
+
+# Use IPC components from import directory.
+include($$PWD/../../../../../import/import.pri)
+LIBS += -lwrtserviceipcclient
+
+
+#I believe the following line to be useless on all platforms. (carol.szabo@nokia.com)
+# !s40:LIBS += -Llib
+# CONFIG += \
+# building-libs \
+# depend_includepath \
+# dll
+CONFIG += dll
+
+# CONFIG(release, debug|release):!CONFIG(QTDIR_build){
+# !unix : contains(QT_CONFIG, reduce_exports): CONFIG += hide_symbols
+# unix : contains(QT_CONFIG, reduce_relocations): CONFIG += bsymbolic_functions
+# }
+
+CONFIG -= warn_on
+*-g++* : QMAKE_CXXFLAGS += -Wreturn-type -fno-strict-aliasing
+CONFIG(gcov) {
+ LIBS += -lgcov
+ QMAKE_CXXFLAGS += -fprofile-arcs -ftest-coverage
+ message( "building for coverage statics" )
+}
+
+
+
+
+isEmpty(TEMPDIR) {
+ CONFIG(release, debug|release):TEMPDIR=$$DESTDIR/Release/build
+ CONFIG(debug, debug|release):TEMPDIR=$$DESTDIR/Debug/build
+}
+
+CONFIG (maemo) {
+ include(../../../../cwrt-maemo.pri)
+}
+
+symbian: {
+ TARGET.UID3 = 0x200267E6
+ TARGET.VID = VID_DEFAULT
+ TARGET.EPOCALLOWDLLDATA=1
+ TARGET.CAPABILITY = All -TCB -DRM -AllFiles
+ LIBS += -lefsrv -lcaf -lcafutils
+ INCLUDEPATH+=$$MW_LAYER_PUBLIC_EXPORT_PATH(cwrt) $$MW_LAYER_PUBLIC_EXPORT_PATH()
+ INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE
+ INCLUDEPATH+=/epoc32/include
+ BookMarksClientlibs.sources = BookMarksClient.dll
+ BookMarksClientlibs.path = /sys/bin
+ DEPLOYMENT += BookMarksClientlibs
+
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/bookmarksengine/bookmarksclient/inc/bookmarkclient.h Tue May 04 12:39:38 2010 +0300
@@ -0,0 +1,88 @@
+/*
+* 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:
+*
+*/
+
+#ifndef BOOKMARKCLIENT_H
+#define BOOKMARKCLIENT_H
+
+#include<QObject>
+#include<QString>
+#include<bookmarkclientdefs.h>
+#include<QtGui>
+//using namespace WRT;
+
+class BookmarksClientSidePrivate;
+
+class BOOKMARKSENGINECLIENT_EXPORT BookmarkLeaf
+{
+public:
+ QString getUrl(){return url;}
+ QString getTitle(){return title;}
+ QDate getDate(){return date;}
+ QTime getLastVisited(){return lastVisited;}
+ QString getDesc(){return desc;}
+ QIcon getFavIcon(){return favicon;}
+ QString getTag(){ return m_tag;}
+ int getIndex(){ return m_index;}
+
+ void setUrl(QString aurl){url=aurl;}
+ void setTitle(QString atitle){title=atitle;}
+ void setDate(QDate adate){date=adate;}
+ void setLastVisited(QTime atime){lastVisited=atime;}
+ void setDesc(QString adesc){desc=adesc;}
+ void setFavIcon(QIcon afavicon){favicon=afavicon;}
+ void setTag(QString atag){m_tag=atag;}
+ void setIndex(int index){m_index=index;}
+private:
+ QString url;
+ QString title;
+
+ /*The last date on which URL is visited*/
+ QDate date;
+ /*The last time on which URL is visited*/
+ QTime lastVisited;
+
+ QString desc;
+ QIcon favicon;
+ bool expanded;
+ QString m_tag;
+ int m_index;
+
+
+};
+
+class BOOKMARKSENGINECLIENT_EXPORT BookmarksClientSide : public QObject
+ {
+Q_OBJECT
+BOOKMARKSCLIENT_PRIVATE(BookmarksClientSide)
+public:
+
+ BookmarksClientSide();
+ ~BookmarksClientSide();
+ int connectToServer();
+ void closeServer();
+ int AddBookmark(BookmarkLeaf* BookmarkContent);
+ BookmarkLeaf* FetchBookmark(QString title);
+ int DeleteBookmark(QString title);
+ int getSessionId(int& BookmarkId);
+ QList<BookmarkLeaf*> FetchAllBookmarks();
+signals:
+ void BookmarkAdded(QString title);
+ void BookmarkDeleted(QString title);
+private slots:
+ void handleServerResponse();
+ };
+#endif //BOOKMARKCLIENT_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/bookmarksengine/bookmarksclient/inc/bookmarkclientdefs.h Tue May 04 12:39:38 2010 +0300
@@ -0,0 +1,49 @@
+/*
+* Copyright (c) 2010 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:
+*
+*/
+
+
+#ifndef BOOKMARKSCLIENTDEFS_H
+#define BOOKMARKSCLIENTDEFS_H
+
+#define BOOKMARKSCLIENT_PRIVATE(Class) \
+ private: \
+ inline Class##Private* priv_func() { return reinterpret_cast<Class##Private*>(priv_ptr); } \
+ inline const Class##Private* priv_func() const{ return static_cast<Class##Private*>(priv_ptr);} \
+ friend class Class##Private; \
+ void* priv_ptr;
+#define BOOKMARKSCLIENT_PUBLIC(Class) \
+ public: \
+ inline Class* pub_func() { return static_cast<Class *>(pub_ptr); } \
+ inline const Class* pub_func() const { return static_cast<const Class *>(pub_ptr); } \
+ private: \
+ friend class Class; \
+ void* pub_ptr;
+
+#define BOOKMARKSCLIENT_INITIALIZE(Class) \
+ priv_ptr=new Class##Private(); \
+ Class##Private* priv=priv_func();\
+ priv->pub_ptr = this;
+#define BOOKMARKSCLIENT_PUBLICPTR(Class) Class * const pub = pub_func()
+#define BOOKMARKSCLIENT_PRIVATEPTR(Class) Class##Private* const priv=priv_func()
+
+#ifdef BUILDING_BOOKMARKS_CLIENT
+ #define BOOKMARKSENGINECLIENT_EXPORT Q_DECL_EXPORT
+#else
+ #define BOOKMARKSENGINECLIENT_EXPORT Q_DECL_IMPORT
+#endif
+
+#endif //BOOKMARKSCLIENTDEFS_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/bookmarksengine/bookmarksclient/src/bookmarkclient.cpp Tue May 04 12:39:38 2010 +0300
@@ -0,0 +1,351 @@
+/*
+* 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:
+*
+*/
+
+
+#include<QString>
+#include<bookmarkscommonengine.h>
+#include<bookmarkclient.h>
+#include <serviceipc.h>
+#include<serviceipcclient.h>
+#include<QDebug>
+
+class BookmarksClientSidePrivate
+ {
+BOOKMARKSCLIENT_PUBLIC(BookmarksClientSide)
+
+public:
+ ~BookmarksClientSidePrivate();
+ QString m_clientName;
+ int m_clientuid;
+ bool m_isConnected;
+ int m_error;
+ WRT::ServiceFwIPC* m_IpcSession;
+ int dispatchServerMessagestoClient(int msgType, QString title);
+ };
+
+/**==============================================================
+ * Description: Constructor of BookmarksClientSidePrivate
+ * Author: Chandrashekar.V
+ * EmpId: 10289207
+ ================================================================*/
+BookmarksClientSidePrivate::~BookmarksClientSidePrivate()
+ {
+ if (m_IpcSession)
+ {
+ m_IpcSession->disconnect();
+ delete m_IpcSession;
+ m_IpcSession = NULL;
+ }
+
+ }
+
+/**==============================================================
+ * Description: Constructor of BookmarksClientSide
+ * Author: Chandrashekar.V
+ * EmpId: 10289207
+ ================================================================*/
+BookmarksClientSide::BookmarksClientSide()
+ {
+ BOOKMARKSCLIENT_INITIALIZE(BookmarksClientSide);
+
+ priv->m_IpcSession = new WRT::ServiceFwIPC(this);
+
+ }
+
+/**==============================================================
+ * Description: Connects to the bookmark server
+ * Author: Chandrashekar.V
+ * EmpId: 10289207
+ ================================================================*/
+int BookmarksClientSide::connectToServer()
+ {
+ BOOKMARKSCLIENT_PRIVATEPTR(BookmarksClientSide);
+ bool connected = false;
+ if (priv->m_IpcSession)
+ {
+ int retry(5);
+ for (;;)
+ {
+ connected = priv->m_IpcSession->connect(BOOKMARKSENGINESERVER);
+ if (connected)
+ {
+ break;
+ }
+ else
+ {
+ if (!priv->m_IpcSession->startServer(BOOKMARKSENGINESERVER,
+ BOOKMARKSENGINESERVEREXE))
+ { // start server failed
+ qDebug() << "Failed to Start the BOOKMARK Server.";
+ break;
+ }
+
+ }
+ if (0 == --retry)
+ {
+ break;
+ }
+ }
+ }
+ if (connected)
+ {
+
+ connect(priv->m_IpcSession, SIGNAL(readyRead()), this,
+ SLOT(handleServerResponse()));
+ return ErrNone;
+ }
+ else
+ {
+ return ErrGeneral;
+ }
+ }
+
+/**==============================================================
+* Description: Disconnects the client
+* Author: Chandrashekar.V
+* EmpId: 10289207
+================================================================*/
+void BookmarksClientSide::closeServer()
+ {
+ BOOKMARKSCLIENT_PRIVATEPTR(BookmarksClientSide);
+ if (priv->m_IpcSession)
+ {
+ priv->m_IpcSession->disconnect();
+ }
+ }
+
+/**==============================================================
+ * Description: Destrcutor of the BookmarksClientSide
+ * Author: Chandrashekar.V
+ * EmpId: 10289207
+ ================================================================*/
+BookmarksClientSide::~BookmarksClientSide()
+ {
+ }
+
+/**==============================================================
+ * Description: Sends add bookmark request to the server
+ * Author: Chandrashekar.V
+ * EmpId: 10289207
+ ================================================================*/
+int BookmarksClientSide::AddBookmark(
+ BookmarkLeaf* BookmarkContent)
+ {
+ BOOKMARKSCLIENT_PRIVATEPTR(BookmarksClientSide);
+ QString data;
+ bool result = false;
+ data.append(BookmarkContent->getTitle());
+ data.append(BOOKMARKSENGINESEPARATOR);
+ data.append(BookmarkContent->getUrl());
+ data.append(BOOKMARKSENGINESEPARATOR);
+ data.append(BookmarkContent->getDate().toString("dd.MM.yyyy"));
+ data.append(BOOKMARKSENGINESEPARATOR);
+ data.append(BookmarkContent->getTag());
+ QString requestType;
+ requestType.append(QString::number(EAddBookmark));
+ if (priv->m_IpcSession)
+ {
+ result = priv->m_IpcSession->sendSync(requestType, data.toAscii());
+ }
+
+ if (result == true)
+ {
+ return ErrNone;
+ }
+ else
+ {
+ return ErrGeneral;
+ }
+ }
+
+/**==============================================================
+ * Description: Sends add fetchbookmark request to the server
+ * Author: Chandrashekar.V
+ * EmpId: 10289207
+ ================================================================*/
+BookmarkLeaf* BookmarksClientSide::FetchBookmark(
+ QString title)
+ {
+ BOOKMARKSCLIENT_PRIVATEPTR(BookmarksClientSide);
+ BookmarkLeaf *node = NULL;
+ QString data;
+ data.append(title);
+ QString requestType;
+ requestType.append(QString::number(EFetchBookmark));
+ if (priv->m_IpcSession)
+ {
+ priv->m_IpcSession->sendSync(requestType, data.toAscii());
+ QByteArray msg = priv->m_IpcSession->readAll();
+ QString serverMsg;
+ serverMsg = msg.data();
+ QStringList list = serverMsg.split(BOOKMARKSENGINESEPARATOR);
+
+ QString title = list[0];
+ QString url = list[1];
+ QString strdate = list[2];
+ QString tags = list[3];
+ QDate adate = QDate::fromString(strdate, "dd.MM.yyyy");
+
+ node = new BookmarkLeaf();
+ node->setTitle(title);
+ node->setUrl(url);
+ node->setDate(adate);
+ node->setTag(tags);
+ }
+ return node;
+ }
+
+/**==============================================================
+ * Description: Sends add deletebookmark request to the server
+ * Author: Chandrashekar.V
+ * EmpId: 10289207
+ ================================================================*/
+int BookmarksClientSide::DeleteBookmark(
+ QString title)
+ {
+ BOOKMARKSCLIENT_PRIVATEPTR(BookmarksClientSide);
+ QString data;
+ bool result = false;
+ data.append(title);
+ QString requestType;
+ requestType.append(QString::number(EDeleteBookmark));
+ if (priv->m_IpcSession)
+ {
+ result = priv->m_IpcSession->sendSync(requestType, data.toAscii());
+ }
+ if (result == true)
+ {
+ return ErrNone;
+ }
+ else
+ {
+ return ErrGeneral;
+ }
+
+ }
+
+/**==============================================================
+ * Description: gets session Id of the client
+ * Author: Chandrashekar.V
+ * EmpId: 10289207
+ ================================================================*/
+int BookmarksClientSide::getSessionId(
+ int& BookmarkId)
+ {
+ BOOKMARKSCLIENT_PRIVATEPTR(BookmarksClientSide);
+ bool result = false;
+ if (priv->m_IpcSession)
+ {
+ result = priv->m_IpcSession->getSessionId(BookmarkId);
+ }
+ if (result == true)
+ {
+ return ErrNone;
+ }
+ else
+ {
+ return ErrGeneral;
+ }
+ }
+
+/**==============================================================
+ * Description: Sends add fetchAllbookmark request to the server
+ * Author: Chandrashekar.V
+ * EmpId: 10289207
+ ================================================================*/
+QList<BookmarkLeaf*> BookmarksClientSide::FetchAllBookmarks()
+ {
+ BOOKMARKSCLIENT_PRIVATEPTR(BookmarksClientSide);
+ QList<BookmarkLeaf*> nodeslist;
+ QString data;
+ data.append(NULL);
+ QString requestType;
+ requestType.append(QString::number(EFetchAllBookmark));
+
+ if (priv->m_IpcSession)
+ {
+ priv->m_IpcSession->sendSync(requestType, data.toAscii());
+ QByteArray msg = priv->m_IpcSession->readAll();
+ QString serverMsg;
+ serverMsg = msg.data();
+ QStringList list = serverMsg.split(BOOKMARKSENGINESEPARATOR);
+ int count = list.count() / 4;
+ int i = 0;
+ while (count--)
+ {
+ QString title = list[i++];
+ QString url = list[i++];
+ QString strdate = list[i++];
+ QDate adate = QDate::fromString(strdate, "dd.MM.yyyy");
+ QString tags = list[i++];
+ BookmarkLeaf* node = new BookmarkLeaf();
+ node->setTitle(title);
+ node->setUrl(url);
+ node->setDate(adate);
+ node->setTag(tags);
+
+ nodeslist.append(node);
+ }
+ }
+ return nodeslist;
+
+ }
+
+/**==============================================================
+ * Description: handles server responses
+ * Author: Chandrashekar.V
+ * EmpId: 10289207
+ ================================================================*/
+void BookmarksClientSide::handleServerResponse()
+ {
+ BOOKMARKSCLIENT_PRIVATEPTR(BookmarksClientSide);
+ qDebug() << " handling server response" << '\n';
+ QByteArray msg;
+ msg = priv->m_IpcSession->readAll();
+ QString serverMsg;
+ serverMsg = msg.data();
+ qDebug() << " Message is " << serverMsg << '\n';
+ QStringList list1 = serverMsg.split(BOOKMARKSENGINESEPARATOR);
+ int msgType = list1[0].toLocal8Bit().toInt();
+ QString title = list1[1];
+ int res=priv->dispatchServerMessagestoClient(msgType, title);
+
+ }
+
+/**==============================================================
+ * Description: Sends server response notifications to the UI
+ * Author: Chandrashekar.V
+ * EmpId: 10289207
+ ================================================================*/
+int BookmarksClientSidePrivate::dispatchServerMessagestoClient(int msgType,
+ QString title)
+ {
+ BOOKMARKSCLIENT_PUBLICPTR(BookmarksClientSide);
+ switch (msgType)
+ {
+ case EServerMsgBookmarkDeleted:
+ emit pub->BookmarkDeleted(title);
+ break;
+ case EServerMsgBookmarkAdded:
+ emit pub->BookmarkAdded(title);
+ break;
+ default:
+ break;
+ }
+ return ErrNone;
+ }
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/bookmarksengine/bookmarksengine.pro Tue May 04 12:39:38 2010 +0300
@@ -0,0 +1,21 @@
+#
+# Copyright (c) 2010 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:
+#
+
+TEMPLATE = subdirs
+CONFIG += ordered debug_and_release
+
+SUBDIRS = ./browsercontentdll/browsercontentdll.pro
+
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/bookmarksengine/bookmarksserver/BookmarksServer.pro Tue May 04 12:39:38 2010 +0300
@@ -0,0 +1,88 @@
+#
+# Copyright (c) 2010 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:
+#
+
+TEMPLATE = app
+TARGET = BookMarkServer
+
+# establish relative root dir
+ROOT_DIR = $$PWD/../..
+
+include($$ROOT_DIR/browser.pri)
+
+QT += core network xml sql
+QT -= gui
+
+HEADERS += $$PWD/inc/bookmarkserver.h \
+ $$PWD/../commoninclude/bookmarkscommonengine.h
+SOURCES += $$PWD/src/servermain.cpp \
+ $$PWD/src/bookmarkserver.cpp
+
+
+isEmpty(BEDROCK_OUTPUT_DIR): {
+ symbian {
+ CONFIG(release,release|debug):BOOKMARK_DATAMODEL_SERVER_OUTPUT_DIR=$$PWD/../../WrtBuild/Release
+ CONFIG(debug,release|debug):BOOKMARK_DATAMODEL_SERVER_OUTPUT_DIR=$$PWD/../../WrtBuild/Debug
+
+ else {
+ CONFIG(release,release|debug):BOOKMARK_DATAMODEL_SERVER_OUTPUT_DIR=$$PWD/../../../../../WrtBuild/Release
+ CONFIG(debug,release|debug):BOOKMARK_DATAMODEL_SERVER_OUTPUT_DIR=$$PWD/../../../../../WrtBuild/Debug
+ }
+} else {
+ BOOKMARK_DATAMODEL_SERVER_OUTPUT_DIR=$$BEDROCK_OUTPUT_DIR
+}
+
+QMAKE_RPATHDIR += $$BOOKMARK_DATAMODEL_SERVER_OUTPUT_DIR/bin
+QMAKE_LIBDIR += $$BOOKMARK_DATAMODEL_SERVER_OUTPUT_DIR/bin
+
+
+INCLUDEPATH += $$PWD/inc $$PWD/../commoninclude $$PWD/../../ipc/serviceipc $$PWD/../../ipc/serviceipcserver
+
+# Use IPC components from import directory.
+include($$PWD/../../../../../import/import.pri)
+LIBS += -lwrtserviceipcserver
+
+CONFIG(gcov) {
+ LIBS += -lgcov
+ QMAKE_CXXFLAGS += -fprofile-arcs -ftest-coverage
+ message( "building for coverage statics" )
+}
+
+
+OBJECTS_DIR = $$BOOKMARK_DATAMODEL_SERVER_OUTPUT_DIR/BookMarkServer/tmp
+DESTDIR = $$BOOKMARK_DATAMODEL_SERVER_OUTPUT_DIR/bin
+MOC_DIR = $$BOOKMARK_DATAMODEL_SERVER_OUTPUT_DIR/BookMarkServer/tmp
+RCC_DIR = $$BOOKMARK_DATAMODEL_SERVER_OUTPUT_DIR/BookMarkServer/tmp
+TEMPDIR = $$BOOKMARK_DATAMODEL_SERVER_OUTPUT_DIR/BookMarkServer/build
+
+
+
+
+CONFIG (maemo) {
+ include(../../../../cwrt-maemo.pri)
+}
+
+symbian: {
+ TARGET.EPOCHEAPSIZE = 0x20000 0x1000000 // Min 128kb, Max 16Mb
+ TARGET.UID3 = 0x200267E7
+ TARGET.VID = VID_DEFAULT
+ TARGET.EPOCALLOWDLLDATA=1
+ TARGET.CAPABILITY = All -TCB -DRM -AllFiles
+ CONFIG +=no_icon
+}
+
+symbian: {
+ INCLUDEPATH += $$PWD $$MW_LAYER_SYSTEMINCLUDE $$APP_LAYER_SYSTEMINCLUDE
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/bookmarksengine/bookmarksserver/inc/bookmarkserver.h Tue May 04 12:39:38 2010 +0300
@@ -0,0 +1,73 @@
+/*
+* 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:
+*
+*/
+
+#ifndef BOOKMARKSERVER_H
+#define BOOKMARKSERVER_H
+
+#include <QHash>
+#include <serviceipcobserver.h>
+#include <serviceipcserver.h>
+#define BOOKMARKDATAMODELSERVER "BookMarkServer"
+
+const QString dbLocation="BookMarkDatabase.db";
+
+
+
+//using namespace WRT;
+class BookMarkServer: public QObject, public WRT::MServiceIPCObserver
+ {
+ Q_OBJECT
+ public:
+ BookMarkServer();
+ virtual ~BookMarkServer();
+ enum BookmarkRequestTypes
+ {
+ EDeleteBookMark,
+ EAddBookMark,
+ EFetchBookmark,
+ EFetchAllBookmarks,
+ EUnknownrequest
+ };
+ enum BookmarkResponseTypes
+ {
+ EDeleteBookMarkDone,
+ EAddBookMarkDone,
+ EFetchBookmarkDone,
+ EFetchAllBookmarksDone,
+ EUnknownresponse
+ };
+
+
+ private:
+ bool handleRequest(WRT::ServiceIPCRequest *aRequest);
+ void handleCancelRequest(WRT::ServiceIPCRequest *aRequest);
+ void handleClientConnect(WRT::ClientInfo *aNewClient);
+ void handleClientDisconnect(WRT::ClientInfo *aClient);
+ private:
+ void fetchBookMarkData(WRT::ServiceIPCRequest *request);
+ int createDatabase();
+ void addBookMark(WRT::ServiceIPCRequest *request);
+ void deleteBookMark(WRT::ServiceIPCRequest *request);
+ private slots:
+ void closeServer();
+ private:
+ WRT::ServiceFwIPCServer* m_server;
+ QString m_connectionName;
+ QHash<int,QString>m_clients;
+ int m_sessionCount;
+ };
+#endif //BOOKMARKSERVER_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/bookmarksengine/bookmarksserver/src/bookmarkserver.cpp Tue May 04 12:39:38 2010 +0300
@@ -0,0 +1,325 @@
+/*
+* 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:
+*
+*/
+
+
+#include<bookmarkserver.h>
+#include<QSqlDatabase>
+#include<QSqlQuery>
+#include <QDir>
+#include <QFileInfo>
+#include <QList>
+#include<bookmarkscommonengine.h>
+#include<serviceipcrequest.h>
+#include<QSqlError>
+#include<QDebug>
+
+/**==============================================================
+ * Description: Constructor of BookMarkServer
+ * Author: Chandrashekar.V
+ * EmpId: 10289207
+ ================================================================*/
+BookMarkServer::BookMarkServer() :
+ m_sessionCount(0)
+ {
+
+ m_server = new WRT::ServiceFwIPCServer(this, this);
+ createDatabase();
+ bool ret = m_server->listen(BOOKMARKSENGINESERVER);
+ if (!ret)
+ {
+ qDebug() << " Failed to LISTEN" << '\n';
+ QTimer::singleShot(1, this, SLOT(closeServer()));
+ return;
+ }
+
+ m_server->configIpcServerLifetime(true);
+
+ }
+
+/**==============================================================
+ * Description:Destructor of BookMarkServer
+ * Author: Chandrashekar.V
+ * EmpId: 10289207
+ ================================================================*/
+BookMarkServer::~BookMarkServer()
+ {
+
+ if (m_server)
+ {
+ m_server->disconnect();
+ delete m_server;
+ m_server = NULL;
+ }
+ }
+
+/**==============================================================
+ * Description:closes the bookmark Server connection
+ * Author: Chandrashekar.V
+ * EmpId: 10289207
+ ================================================================*/
+void BookMarkServer::closeServer()
+ {
+ // before shutting down, check if any active session exists
+
+ if (m_sessionCount <= 0)
+ QCoreApplication::quit();
+ }
+
+/**==============================================================
+ * Description:Handles the client request
+ * Author: Chandrashekar.V
+ * EmpId: 10289207
+ ================================================================*/
+bool BookMarkServer::handleRequest(WRT::ServiceIPCRequest *aRequest)
+ {
+
+ WRT::ClientInfo* clientInfo =
+ const_cast<WRT::ClientInfo*> (aRequest->clientInfo());
+ int sessionID = clientInfo->sessionId();
+ bool val(false);
+ bool result = true;
+ int command = aRequest->getOperation().toInt(&val);
+ QString msg = aRequest->getData();
+ QStringList list = msg.split(BOOKMARKSENGINESEPARATOR);
+ switch (command)
+ {
+ case (EDeleteBookMark):
+ deleteBookMark(aRequest);
+ break;
+ case (EAddBookMark):
+ addBookMark(aRequest);
+ break;
+ case (EFetchBookmark):
+ fetchBookMarkData(aRequest);
+ break;
+ case (EFetchAllBookmarks):
+ fetchBookMarkData(aRequest);
+ break;
+ default:
+ result=false;
+ break;
+ }
+ return result;
+ }
+
+/**==============================================================
+ * Description:Adds the bookmark to the database
+ * Author: Chandrashekar.V
+ * EmpId: 10289207
+ ================================================================*/
+void BookMarkServer::addBookMark(WRT::ServiceIPCRequest *aRequest)
+ {
+
+ QString msg = aRequest->getData();
+ QStringList list = msg.split(BOOKMARKSENGINESEPARATOR);
+
+ QString title = list[0];
+ QString url = list[1];
+ QString adate = list[2];
+ QString tags = list[3];
+
+ QSqlDatabase db = QSqlDatabase::database(m_connectionName);
+
+ if (db.isOpen())
+ {
+
+ QSqlQuery query(db);
+ query.prepare("INSERT INTO BookMarkTable (title, url, adate, tags) "
+ "VALUES (:title, :url, :adate, :tags)");
+
+ query.bindValue(":title", QVariant(title));
+ query.bindValue(":url", QVariant(url));
+ query.bindValue(":adate", QVariant(adate));
+ query.bindValue(":tags", QVariant(tags));
+ query.exec();
+ QSqlError error = query.lastError();
+
+ }
+ QString strResponse;
+ WRT::ClientInfo* clientInfo =
+ const_cast<WRT::ClientInfo*> (aRequest->clientInfo());
+ strResponse.append(QString::number(EServerMsgBookmarkAdded));
+ strResponse.append(BOOKMARKSENGINESEPARATOR);
+ strResponse.append(title);
+ strResponse.append(BOOKMARKSENGINESEPARATOR);
+ aRequest->write(strResponse.toAscii());
+ aRequest->completeRequest();
+ m_server->broadcast(strResponse.toAscii());
+
+ }
+
+/**==============================================================
+ * Description:Deletes the bookmark from the database
+ * Author: Chandrashekar.V
+ * EmpId: 10289207
+ ================================================================*/
+void BookMarkServer::deleteBookMark(WRT::ServiceIPCRequest *aRequest)
+ {
+
+ QString msg = aRequest->getData();
+ QStringList list = msg.split(";");
+ QString title = list[0];
+ QSqlDatabase db = QSqlDatabase::database(m_connectionName);
+ if (db.isOpen())
+ {
+ QSqlQuery query(db);
+ query.prepare("DELETE FROM BookMarkTable WHERE title=:title");
+ query.bindValue(":title", title);
+ query.exec();
+ QSqlError error = query.lastError();
+ }
+ QString strResponse;
+ strResponse.append(QString::number(EServerMsgBookmarkDeleted));
+ strResponse.append(BOOKMARKSENGINESEPARATOR);
+ strResponse.append(title);
+ strResponse.append(BOOKMARKSENGINESEPARATOR);
+ aRequest->write(strResponse.toAscii());
+ aRequest->completeRequest();
+ }
+
+/**==============================================================
+ * Description:Fetches the bookmark data from the database
+ * Author: Chandrashekar.V
+ * EmpId: 10289207
+ ================================================================*/
+void BookMarkServer::fetchBookMarkData(WRT::ServiceIPCRequest *request)
+ {
+
+ QSqlDatabase db = QSqlDatabase::database(m_connectionName);
+
+ QString strResponse;
+
+ bool dbopen = db.isOpen();
+
+ if (dbopen)
+ {
+
+ QSqlQuery query(db);
+
+ query.prepare("SELECT title,url,adate,tags FROM BookMarkTable");
+ query.exec();
+ QSqlError error = query.lastError();
+
+ while (query.next())
+ {
+
+ QString title = query.value(0).toString();
+ QString url = query.value(1).toString();
+ QString date = query.value(2).toString();
+ QString tag = query.value(3).toString();
+
+ strResponse.append(title);
+ strResponse.append(BOOKMARKSENGINESEPARATOR);
+ strResponse.append(url);
+ strResponse.append(BOOKMARKSENGINESEPARATOR);
+ strResponse.append(tag);
+ strResponse.append(BOOKMARKSENGINESEPARATOR);
+ strResponse.append(date);
+ strResponse.append(BOOKMARKSENGINESEPARATOR);
+ }
+ }
+
+ WRT::ClientInfo* clientInfo =
+ const_cast<WRT::ClientInfo*> (request->clientInfo());
+ QByteArray res = strResponse.toAscii();
+
+ request->write(strResponse.toAscii());
+ request->completeRequest();
+
+ }
+
+/**==============================================================
+ * Description:Handles the client cancel request
+ * Author: Chandrashekar.V
+ * EmpId: 10289207
+ ================================================================*/
+void BookMarkServer::handleCancelRequest(WRT::ServiceIPCRequest *aRequest)
+ {
+ qDebug() << " Not supported Right now";
+ }
+
+/**==============================================================
+ * Description:Handles the client connection requests
+ * Author: Chandrashekar.V
+ * EmpId: 10289207
+ ================================================================*/
+void BookMarkServer::handleClientConnect(WRT::ClientInfo *aClient)
+ {
+
+ int sessionID = aClient->sessionId();
+ m_clients.insert(sessionID, aClient->name());
+ m_sessionCount++;
+
+ }
+
+/**==============================================================
+ * Description:Handles the client disconnect request
+ * Author: Chandrashekar.V
+ * EmpId: 10289207
+ ================================================================*/
+void BookMarkServer::handleClientDisconnect(WRT::ClientInfo *aClient)
+ {
+ int sessionID = aClient->sessionId();
+ QMutableHashIterator<int, QString> itr(m_clients);
+ while (itr.hasNext())
+ {
+ itr.next();
+ if (itr.key() == sessionID)
+ {
+ itr.remove();
+ break;
+ }
+ }
+
+ if (--m_sessionCount <= 0)
+ {
+ closeServer();
+
+ }
+
+ }
+
+/**==============================================================
+ * Description:Handles the creation of bookmarks databse
+ * Author: Chandrashekar.V
+ * EmpId: 10289207
+ ================================================================*/
+int BookMarkServer::createDatabase()
+ {
+
+ m_connectionName = "bookmark_";
+
+ QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE", m_connectionName);
+ db.setHostName("Simulator");
+ db.setDatabaseName(dbLocation);
+
+ if (!db.open())
+ return -1;
+
+ QFileInfo dbFile(dbLocation);
+ if (dbFile.exists() && dbFile.size() == 0)
+ {
+ QSqlQuery query(db);
+ query.exec(
+ "CREATE TABLE BookMarkTable (title VARCHAR(40) NOT NULL,url VARCHAR(100),adate VARCHAR(40),tags VARCHAR(40),CONSTRAINT pk_BookMarkTable PRIMARY KEY(title))");
+
+ }
+
+
+ return 0;
+ }
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/bookmarksengine/bookmarksserver/src/servermain.cpp Tue May 04 12:39:38 2010 +0300
@@ -0,0 +1,30 @@
+/*
+* 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:
+*
+*/
+
+
+#include <QCoreApplication>
+#include <bookmarkserver.h>
+#include<QDebug>
+
+int main( int argc, char **argv )
+{
+ QCoreApplication app(argc, argv);
+ qDebug()<<"FINALLY I AM IN"<<'\n';
+ BookMarkServer* BookMarkServerObj=new BookMarkServer();
+ return app.exec();
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/bookmarksengine/browsercontentdll/browsercontentdll.pro Tue May 04 12:39:38 2010 +0300
@@ -0,0 +1,100 @@
+#
+# Copyright (c) 2010 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:
+#
+
+TEMPLATE = lib
+TARGET = browsercontentdll
+
+ROOT_DIR = $$PWD/../..
+include($$ROOT_DIR/browser.pri)
+
+DEFINES+= BUILDING_BOOKMARK_CONTENTDLL
+
+QT += core network xml sql
+HEADERS += $$PWD/inc/browsercontentdllclientdefs.h \
+ $$PWD/inc/browsercontentdll.h
+
+SOURCES += $$PWD/src/browsercontentdll.cpp
+
+isEmpty(BEDROCK_OUTPUT_DIR): {
+ symbian {
+ CONFIG(release, debug|release):BOOKMARKSCLIENTDLL_DATAMODEL_OUTPUT_DIR=$$PWD/../../WrtBuild/Release
+ CONFIG(debug, debug|release):BOOKMARKSCLIENTDLL_DATAMODEL_OUTPUT_DIR= $$PWD/../../WrtBuild/Debug
+ } else {
+ CONFIG(release, debug|release):BOOKMARKSCLIENTDLL_DATAMODEL_OUTPUT_DIR=$$PWD/../../../../../WrtBuild/Release
+ CONFIG(debug, debug|release):BOOKMARKSCLIENTDLL_DATAMODEL_OUTPUT_DIR= $$PWD/../../../../../WrtBuild/Debug
+ }
+} else {
+ BOOKMARKSCLIENTDLL_DATAMODEL_OUTPUT_DIR = $$BEDROCK_OUTPUT_DIR
+}
+
+OBJECTS_DIR = $$BOOKMARKSCLIENTDLL_DATAMODEL_OUTPUT_DIR/browsercontentdll/tmp
+DESTDIR = $$BOOKMARKSCLIENTDLL_DATAMODEL_OUTPUT_DIR/bin
+MOC_DIR = $$BOOKMARKSCLIENTDLL_DATAMODEL_OUTPUT_DIR/browsercontentdll/tmp
+RCC_DIR = $$BOKMARKSCLIENTDLL_DATAMODEL_OUTPUT_DIR/browsercontentdll/tmp
+TEMPDIR = $$BOOKMARKSCLIENTDLL_DATAMODEL_OUTPUT_DIR/browsercontentdll/build
+# QMAKE_LIBDIR = $$BOOKMARKSCLIENTDLL_DATAMODEL_OUTPUT_DIR/bin
+
+INCLUDEPATH += $$PWD/inc
+
+
+#I believe the following line to be useless on all platforms. (carol.szabo@nokia.com)
+# !s40:LIBS += -Llib
+# CONFIG += \
+# building-libs \
+# depend_includepath \
+# dll
+
+CONFIG += dll
+
+# CONFIG(release, debug|release):!CONFIG(QTDIR_build){
+# !unix : contains(QT_CONFIG, reduce_exports): CONFIG += hide_symbols
+# unix : contains(QT_CONFIG, reduce_relocations): CONFIG += bsymbolic_functions
+# }
+
+CONFIG -= warn_on
+*-g++* : QMAKE_CXXFLAGS += -Wreturn-type -fno-strict-aliasing
+CONFIG(gcov) {
+ LIBS += -lgcov
+ QMAKE_CXXFLAGS += -fprofile-arcs -ftest-coverage
+ message( "building for coverage statics" )
+}
+
+
+
+
+isEmpty(TEMPDIR) {
+ CONFIG(release, debug|release):TEMPDIR=$$DESTDIR/Release/build
+ CONFIG(debug, debug|release):TEMPDIR=$$DESTDIR/Debug/build
+}
+
+CONFIG (maemo) {
+ include(../../../../cwrt-maemo.pri)
+}
+
+symbian: {
+ TARGET.UID3 = 0x200267E6
+ TARGET.VID = VID_DEFAULT
+ TARGET.EPOCALLOWDLLDATA=1
+ TARGET.CAPABILITY = All -TCB -DRM -AllFiles
+ LIBS += -lefsrv -lcaf -lcafutils
+ INCLUDEPATH+=$$MW_LAYER_PUBLIC_EXPORT_PATH(cwrt) $$MW_LAYER_PUBLIC_EXPORT_PATH()
+ INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE
+ INCLUDEPATH+=/epoc32/include
+ browsercontentdlllibs.sources = browsercontentdll.dll
+ browsercontentdlllibs.path = /sys/bin
+ DEPLOYMENT += browsercontentdlllibs
+
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/bookmarksengine/browsercontentdll/inc/browsercontentdll.h Tue May 04 12:39:38 2010 +0300
@@ -0,0 +1,121 @@
+/*
+* 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:
+*
+*/
+
+#ifndef BROWSERCONTENT_H
+#define BROWSERCONTENT_H
+
+#include<QObject>
+#include<QString>
+#include<browsercontentdllclientdefs.h>
+#include<QtGui>
+
+
+class BrowserContentPrivate;
+
+class BOOKMARKSCONTENTDLL_EXPORT BookmarkLeaf
+{
+public:
+ QString getUrl(){return url;}
+ QString getTitle(){return title;}
+ QDate getDate(){return date;}
+ QTime getLastVisited(){return lastVisited;}
+ QString getDesc(){return desc;}
+ QIcon getFavIcon(){return favicon;}
+ QString getTag(){ return m_tag;}
+ int getIndex() {return m_index;}
+
+ void setUrl(QString aurl){url=aurl;}
+ void setTitle(QString atitle){title=atitle;}
+ void setDate(QDate adate){date=adate;}
+ void setLastVisited(QTime atime){lastVisited=atime;}
+ void setDesc(QString adesc){desc=adesc;}
+ void setFavIcon(QIcon afavicon){favicon=afavicon;}
+ void setTag(QString atag){m_tag=atag;}
+ void setIndex(int aIndex){m_index=aIndex;}
+private:
+ QString url;
+ QString title;
+
+ /*The last date on which URL is visited*/
+ QDate date;
+ /*The last time on which URL is visited*/
+ QTime lastVisited;
+
+ QString desc;
+ QIcon favicon;
+ bool expanded;
+ QString m_tag;
+ int m_index;
+
+
+};
+
+class BOOKMARKSCONTENTDLL_EXPORT HistoryLeaf
+{
+public:
+ QString getUrl(){return url;}
+ QString getTitle(){return title;}
+ QDate getDate(){return date;}
+ QTime getLastVisited(){return lastVisited;}
+ QString getDesc(){return desc;}
+ QIcon getFavIcon(){return favicon;}
+ int getIndex() {return m_index;}
+
+ void setUrl(QString aurl){url=aurl;}
+ void setTitle(QString atitle){title=atitle;}
+ void setDate(QDate adate){date=adate;}
+ void setLastVisited(QTime atime){lastVisited=atime;}
+ void setDesc(QString adesc){desc=adesc;}
+ void setFavIcon(QIcon afavicon){favicon=afavicon;}
+ void setIndex(int aIndex){m_index=aIndex;}
+private:
+ QString url;
+ QString title;
+
+ /*The last date on which URL is visited*/
+ QDate date;
+ /*The last time on which URL is visited*/
+ QTime lastVisited;
+
+ QString desc;
+ QIcon favicon;
+ bool expanded;
+ int m_index;
+
+};
+
+class BOOKMARKSCONTENTDLL_EXPORT BrowserContent:public QObject
+ {
+Q_OBJECT
+BOOKMARKSCLIENT_PRIVATE(BrowserContent)
+public:
+
+ BrowserContent(QString aClientName);
+ ~BrowserContent();
+ int AddBookmark(BookmarkLeaf* BookmarkContent);
+ int DeleteBookmark(QString title);
+ QList<BookmarkLeaf*> FetchAllBookmarks();
+ int reorderBokmarks(QString title,int new_index);
+
+ int AddHistory(HistoryLeaf* HistoryContent);
+ QList<HistoryLeaf*> FetchHistory();
+ int clearHistory();
+
+private:
+ int createDatabase();
+ };
+#endif //BROWSERCONTENT_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/bookmarksengine/browsercontentdll/inc/browsercontentdllclientdefs.h Tue May 04 12:39:38 2010 +0300
@@ -0,0 +1,56 @@
+/*
+* Copyright (c) 2010 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:
+*
+*/
+
+
+#ifndef BOOKMARKSCLIENTDEFS_H
+#define BOOKMARKSCLIENTDEFS_H
+
+#define BOOKMARKSCLIENT_PRIVATE(Class) \
+ private: \
+ inline Class##Private* priv_func() { return reinterpret_cast<Class##Private*>(priv_ptr); } \
+ inline const Class##Private* priv_func() const{ return static_cast<Class##Private*>(priv_ptr);} \
+ friend class Class##Private; \
+ void* priv_ptr;
+#define BOOKMARKSCLIENT_PUBLIC(Class) \
+ public: \
+ inline Class* pub_func() { return static_cast<Class *>(pub_ptr); } \
+ inline const Class* pub_func() const { return static_cast<const Class *>(pub_ptr); } \
+ private: \
+ friend class Class; \
+ void* pub_ptr;
+
+#define BOOKMARKSCLIENT_INITIALIZE(Class) \
+ priv_ptr=new Class##Private(); \
+ Class##Private* priv=priv_func();\
+ priv->pub_ptr = this;
+#define BOOKMARKSCLIENT_PUBLICPTR(Class) Class * const pub = pub_func()
+#define BOOKMARKSCLIENT_PRIVATEPTR(Class) Class##Private* const priv=priv_func()
+// #define BOOKMARKSENGINECLIENT_EXPORT Q_DECL_EXPORT
+
+
+#ifdef BUILDING_BOOKMARK_CONTENTDLL
+ #define BOOKMARKSCONTENTDLL_EXPORT Q_DECL_EXPORT
+#else
+ #define BOOKMARKSCONTENTDLL_EXPORT Q_DECL_IMPORT
+#endif
+
+enum EBrowserContentErrorTypes
+ {
+ ErrNone,
+ ErrGeneral = -2
+ };
+#endif //BOOKMARKSCLIENTDEFS_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/bookmarksengine/browsercontentdll/src/browsercontentdll.cpp Tue May 04 12:39:38 2010 +0300
@@ -0,0 +1,411 @@
+/*
+* 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:
+*
+*/
+
+
+#include<QString>
+#include<browsercontentdll.h>
+#include<QSqlDatabase>
+#include<QSqlQuery>
+#include<QSqlError>
+#include<QDebug>
+const QString dbLocation="browserContent.db";
+
+class BrowserContentPrivate
+ {
+BOOKMARKSCLIENT_PUBLIC(BrowserContent)
+public:
+ ~BrowserContentPrivate();
+ QString m_connectionName;
+ };
+
+/**==============================================================
+ * Description: Constructor of BrowserContentPrivate
+ ================================================================*/
+BrowserContentPrivate::~BrowserContentPrivate()
+ {
+
+ }
+
+/**==============================================================
+ * Description: Constructor of BrowserContent
+ ================================================================*/
+BrowserContent::BrowserContent(QString aClientName)
+ {
+ BOOKMARKSCLIENT_INITIALIZE(BrowserContent);
+
+ priv->m_connectionName=aClientName;
+ createDatabase();
+ }
+
+/**==============================================================
+ * Description: creates the database
+ ================================================================*/
+int BrowserContent::createDatabase()
+ {
+ BOOKMARKSCLIENT_PRIVATEPTR(BrowserContent);
+
+ QSqlDatabase sqlDB = QSqlDatabase::addDatabase("QSQLITE", priv->m_connectionName);
+ sqlDB.setHostName("Simulator");
+ sqlDB.setDatabaseName(dbLocation);
+
+
+ if (!sqlDB.open())
+ return -1;
+ QSqlError error;
+ int err = ErrGeneral;
+
+ QFileInfo dbFile(dbLocation);
+ if (dbFile.exists() && dbFile.size() == 0)
+ {
+ QSqlQuery query(sqlDB);
+ query.exec(
+ "CREATE TABLE BookMarkTable (title VARCHAR(40) NOT NULL,url VARCHAR(100),adate VARCHAR(40),tags VARCHAR(40),rowindex INTEGER,CONSTRAINT pk_BookMarkTable PRIMARY KEY(title))");
+ error=query.lastError();
+
+ if (error.type() == QSqlError::NoError) {
+ query.exec("CREATE TABLE HistoryTable (rowindex INTEGER PRIMARY KEY, title VARCHAR(40) NOT NULL,url VARCHAR(100),adate VARCHAR(40),atime VARCHAR(40))");
+ error=query.lastError();
+ }
+ }
+
+ if (error.type() == QSqlError::NoError) {
+ return ErrNone;
+ }
+ else {
+ return ErrGeneral;
+ }
+
+ }
+
+
+/**==============================================================
+ * Description: Destrcutor of the BookmarksClientSide
+ ================================================================*/
+BrowserContent::~BrowserContent()
+ {
+ }
+
+/**==============================================================
+ * Description: adds the bookmark to the database
+ ================================================================*/
+int BrowserContent::AddBookmark(
+ BookmarkLeaf* BookmarkContent)
+ {
+
+ BOOKMARKSCLIENT_PRIVATEPTR(BrowserContent);
+ QSqlError error;
+ QString title =BookmarkContent->getTitle();
+ QString url = BookmarkContent->getUrl();
+ QString adate =BookmarkContent->getDate().toString("dd.MM.yyyy");
+ QString tags = BookmarkContent->getTag();
+ int aIndex=BookmarkContent->getIndex();
+ QSqlDatabase db = QSqlDatabase::database(priv->m_connectionName);
+
+ if (db.isOpen())
+ {
+ QSqlQuery query(db);
+ query.prepare("UPDATE BookMarkTable SET rowindex=rowindex+1 WHERE rowindex>=:aIndex");
+ query.bindValue(":aIndex", aIndex);
+ query.exec();
+ error = query.lastError();
+
+ query.prepare("INSERT INTO BookMarkTable (title, url, adate, tags, rowindex) "
+ "VALUES (:title, :url, :adate, :tags, :aIndex)");
+
+ query.bindValue(":title", QVariant(title));
+ query.bindValue(":url", QVariant(url));
+ query.bindValue(":adate", QVariant(adate));
+ query.bindValue(":tags", QVariant(tags));
+ query.bindValue(":rowindex", QVariant(aIndex));
+
+ query.exec();
+ error = query.lastError();
+ }
+
+ if (error.type() == QSqlError::NoError)
+ {
+ return ErrNone;
+ }
+ else
+ {
+ return ErrGeneral;
+ }
+ }
+
+
+/**==============================================================
+ * Description: deletes the requested bookmark
+ ================================================================*/
+int BrowserContent::DeleteBookmark(
+ QString atitle)
+ {
+ BOOKMARKSCLIENT_PRIVATEPTR(BrowserContent);
+ QSqlError error;
+ QString title = atitle;
+ QSqlDatabase db = QSqlDatabase::database(priv->m_connectionName);
+ bool ok;
+ if (db.isOpen())
+ {
+ QSqlQuery query(db);
+ query.prepare("SELECT title,url,adate,tags,rowindex FROM BookMarkTable WHERE title=:title");
+ query.bindValue(":title", title);
+ query.exec();
+ error = query.lastError();
+ query.next();
+ int aIndex=query.value(4).toInt(&ok);
+
+ query.prepare("DELETE FROM BookMarkTable WHERE title=:title");
+ query.bindValue(":title", title);
+ query.exec();
+ error = query.lastError();
+ if (error.type() == QSqlError::NoError)
+ {
+ query.prepare("UPDATE BookMarkTable set rowindex=rowindex-1 WHERE rowindex>:aIndex");
+ query.bindValue(":aIndex", aIndex);
+ query.exec();
+ error = query.lastError();
+ }
+ }
+ if (error.type() == QSqlError::NoError)
+ {
+ return ErrNone;
+ }
+ else
+ {
+ return ErrGeneral;
+ }
+
+ }
+
+
+/**==============================================================
+ * Description: fetches Allbookmarks From database
+ ================================================================*/
+QList<BookmarkLeaf*> BrowserContent::FetchAllBookmarks()
+ {
+ BOOKMARKSCLIENT_PRIVATEPTR(BrowserContent);
+ QSqlDatabase db = QSqlDatabase::database(priv->m_connectionName);
+ QList<BookmarkLeaf*> nodeslist;
+
+ bool dbopen = db.isOpen();
+ bool ok;
+
+ if (dbopen)
+ {
+
+ QSqlQuery query(db);
+
+ query.prepare("SELECT title,url,adate,tags,rowindex FROM BookMarkTable ORDER BY rowindex");
+ query.exec();
+ QSqlError error = query.lastError();
+
+ while (query.next())
+ {
+
+ QString title = query.value(0).toString();
+ QString url = query.value(1).toString();
+ QString date = query.value(2).toString();
+ QString tag = query.value(3).toString();
+ int aIndex=query.value(4).toInt(&ok);
+ BookmarkLeaf* node = new BookmarkLeaf();
+ QDate adate = QDate::fromString(date, "dd.MM.yyyy");
+ node->setTitle(title);
+ node->setUrl(url);
+ node->setDate(adate);
+ node->setTag(tag);
+ node->setIndex(aIndex);
+ nodeslist.append(node);
+ }
+ }
+ return nodeslist;
+
+ }
+
+/**==============================================================
+ * Description: Reoders the Bokmarks based on index
+ ================================================================*/
+int BrowserContent::reorderBokmarks(QString title,int new_index)
+ {
+ BOOKMARKSCLIENT_PRIVATEPTR(BrowserContent);
+ QSqlDatabase db = QSqlDatabase::database(priv->m_connectionName);
+ QSqlQuery query(db);
+ QSqlError error;
+ bool ok;
+ query.prepare("SELECT title,url,adate,tags,rowindex FROM BookMarkTable WHERE title=:title");
+ query.bindValue(":title", title);
+ query.exec();
+ error = query.lastError();
+ query.next();
+ int old_index=query.value(4).toInt(&ok);
+
+ if(old_index>new_index)
+ {
+ //Moving the item UP
+ query.prepare("UPDATE BookMarkTable set rowindex=rowindex+1 WHERE rowindex BETWEEN :new_index AND :old_index-1");
+ }
+ else if(old_index<new_index)
+ {
+ //Moving items Down
+ query.prepare("UPDATE BookMarkTable set rowindex=rowindex-1 WHERE rowindex BETWEEN :old_index+1 AND :new_index");
+ }
+ query.bindValue(":old_index", old_index);
+ query.bindValue(":new_index", new_index);
+ //Moving items Down
+ query.exec();
+ error= query.lastError();
+
+ if (error.type() == QSqlError::NoError)
+ {
+ query.prepare("UPDATE BookMarkTable set rowindex=:new_index WHERE title=:title");
+ query.bindValue(":title", title);
+ query.bindValue(":new_index", new_index);
+ query.exec();
+ error = query.lastError();
+ }
+
+ if (error.type() == QSqlError::NoError)
+ {
+ return ErrNone;
+ }
+ else
+ {
+ return ErrGeneral;
+ }
+ }
+
+
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+/**==============================================================
+ * Description: adds the bookmark to the database
+ ================================================================*/
+int BrowserContent::AddHistory(
+ HistoryLeaf* HistoryContent)
+ {
+
+ BOOKMARKSCLIENT_PRIVATEPTR(BrowserContent);
+ QSqlError error;
+ QString title =HistoryContent->getTitle();
+ QString url = HistoryContent->getUrl();
+ QString adate =HistoryContent->getDate().toString("dd.MM.yyyy");
+ QString atime = HistoryContent->getLastVisited().toString("h:mm ap");
+// int aIndex=HistoryContent->getIndex();
+ QSqlDatabase db = QSqlDatabase::database(priv->m_connectionName);
+
+ if (db.isOpen())
+ {
+ QSqlQuery query(db);
+ // query.prepare("UPDATE HistoryTable SET rowindex=rowindex+1 WHERE rowindex>=:aIndex");
+ //query.bindValue(":aIndex", aIndex);
+ //query.exec();
+ //error = query.lastError();
+
+ //"CREATE TABLE HistoryTable (rowindex INTEGER PRIMARY KEY, title VARCHAR(40) NOT NULL,url VARCHAR(100),adate VARCHAR(40),atime VARCHAR(40))");
+
+ query.prepare("INSERT INTO HistoryTable (rowindex,title, url, adate, atime) "
+ "VALUES (NULL,:title, :url, :adate, :atime)");
+
+ //query.bindValue(":rowindex", QVariant(aIndex));
+ query.bindValue(":title", QVariant(title));
+ query.bindValue(":url", QVariant(url));
+ query.bindValue(":adate", QVariant(adate));
+ query.bindValue(":atime", QVariant(atime));
+ query.exec();
+ error = query.lastError();
+ }
+
+ if (error.type() == QSqlError::NoError)
+ {
+ return ErrNone;
+ }
+ else
+ {
+ return ErrGeneral;
+ }
+ }
+
+
+/**==============================================================
+ * Description: fetches History From database
+ ================================================================*/
+QList<HistoryLeaf*> BrowserContent::FetchHistory()
+ {
+ BOOKMARKSCLIENT_PRIVATEPTR(BrowserContent);
+ QSqlDatabase db = QSqlDatabase::database(priv->m_connectionName);
+ QList<HistoryLeaf*> nodeslist;
+
+ bool dbopen = db.isOpen();
+ bool ok;
+
+ if (dbopen)
+ {
+
+ QSqlQuery query(db);
+
+ query.prepare("SELECT title,url,adate,atime,rowindex FROM HistoryTable ORDER BY rowindex");
+ query.exec();
+ QSqlError error = query.lastError();
+
+ while (query.next())
+ {
+
+ QString title = query.value(0).toString();
+ QString url = query.value(1).toString();
+ QString date = query.value(2).toString();
+ QString time = query.value(3).toString();
+ int aIndex=query.value(4).toInt(&ok);
+ HistoryLeaf* node = new HistoryLeaf();
+ QDate adate = QDate::fromString(date, "dd.MM.yyyy");
+ QTime atime = QTime::fromString(time, "h:mm ap");
+ node->setTitle(title);
+ node->setUrl(url);
+ node->setDate(adate);
+ node->setLastVisited(atime);
+// node->setTag(tag);
+ node->setIndex(aIndex);
+ nodeslist.append(node);
+ }
+ }
+ return nodeslist;
+
+ }
+
+/**==============================================================
+ * Description: Clear all rows From History database
+ ================================================================*/
+int BrowserContent::clearHistory()
+{
+ BOOKMARKSCLIENT_PRIVATEPTR(BrowserContent);
+ QSqlError error;
+
+ QSqlDatabase db = QSqlDatabase::database(priv->m_connectionName);
+ bool ok;
+ if (db.isOpen()){
+ QSqlQuery query(db);
+ query.prepare("DELETE FROM HistoryTable" );
+
+ query.exec();
+ error = query.lastError();
+
+ if (error.type() == QSqlError::NoError) {
+ return ErrNone;
+ }
+ else{
+ return ErrGeneral;
+ }
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/bookmarksengine/commoninclude/bookmarkscommonengine.h Tue May 04 12:39:38 2010 +0300
@@ -0,0 +1,54 @@
+/*
+* 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:
+*
+*/
+
+
+#ifndef BOOKMARKSCOMMONENGINE_H
+#define BOOKMARKSCOMMONENGINE_H
+
+
+#define BOOKMARKSENGINESERVER "BookMarkServer"
+
+#ifdef Q_OS_LINUX
+#define BOOKMARKSENGINESERVEREXE "./BookMarkServer"
+#else
+#define BOOKMARKSENGINESERVEREXE "BookMarkServer.exe"
+#endif
+
+#define BOOKMARKSENGINESEPARATOR ";"
+
+ enum BookmarksRequestTypes
+ {
+ EDeleteBookmark,
+ EAddBookmark,
+ EFetchBookmark,
+ EFetchAllBookmark,
+ EUnknownrequest
+ };
+ enum EServerResponseTypes
+ {
+ EServerMsgBookmarkDeleted,
+ EServerMsgBookmarkAdded,
+ EServerMsgBookmarkFetched,
+ EServerMsgBookmarkAllFetched,
+ EServerMsgUnknown
+ };
+ enum EBookmarkErrorTypes
+ {
+ ErrNone,
+ ErrGeneral=-2
+ };
+#endif //BOOKMARKSCOMMONENGINE_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/browser.pri Tue May 04 12:39:38 2010 +0300
@@ -0,0 +1,66 @@
+#
+# Copyright (c) 2010 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:
+#
+
+isEmpty(_BROWSER_PRI_INCLUDED_): {
+
+ _BROWSER_PRI_INCLUDED_=1
+
+ symbian {
+ CONFIG += debug_and_release
+ MMP_RULES += EXPORTUNFROZEN
+ }
+
+ CONFIG(debug, debug|release) {
+ SUBDIRPART = Debug
+ } else {
+ SUBDIRPART = Release
+ }
+
+ # Figure out the root of where stuff should go (this could be done via configure)
+symbian {
+ OUTPUT_DIR = $$PWD
+} else {
+ OUTPUT_DIR = $$PWD/../../..
+}
+ OBJECTS_DIR = $$OUTPUT_DIR/WrtBuild/$$SUBDIRPART/$$TARGET/tmp
+ MOC_DIR = $$OUTPUT_DIR/WrtBuild/$$SUBDIRPART/$$TARGET/tmp
+ RCC_DIR = $$OUTPUT_DIR/WrtBuild/$$SUBDIRPART/$$TARGET/tmp
+ UI_DIR = $$OUTPUT_DIR/WrtBuild/$$SUBDIRPART/$$TARGET/tmp
+ TEMPDIR= $$OUTPUT_DIR/WrtBuild/$$SUBDIRPART/$$TARGET/build
+ DESTDIR = $$OUTPUT_DIR/WrtBuild/$$SUBDIRPART/bin
+ QMAKE_RPATHDIR = $$DESTDIR $$QMAKE_RPATHDIR
+ QMAKE_LIBDIR = $$DESTDIR $$QMAKE_LIBDIR
+
+ # Add the output dirs to the link path too
+ LIBS += -L$$DESTDIR
+
+ DEPENDPATH += .
+ INCLUDEPATH += .
+
+ symbian {
+ BROWSER_INCLUDE = $$MW_LAYER_PUBLIC_EXPORT_PATH(browser)
+ } else {
+ BROWSER_INCLUDE = $$PWD/include/
+ }
+
+ QMAKE_CXXFLAGS_DEBUG += -g
+
+ CONFIG(gcov) {
+ LIBS += -lgcov
+ QMAKE_CXXFLAGS += -fprofile-arcs -ftest-coverage
+ }
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/browser.pro Tue May 04 12:39:38 2010 +0300
@@ -0,0 +1,20 @@
+#
+# Copyright (c) 2010 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:
+#
+
+TEMPLATE = subdirs
+CONFIG += ordered
+
+SUBDIRS += bookmarksengine
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/layers.sysdef.xml Tue May 04 12:39:38 2010 +0300
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<!DOCTYPE SystemDefinition SYSTEM "sysdef_1_5_1.dtd" [
+ <!ENTITY layer_real_source_path "sf/mw/browser" >
+]>
+
+<SystemDefinition name="browser" schema="1.5.1">
+ <systemModel>
+ <layer name="mw_layer">
+ <module name="browser">
+ <unit unitID="browser" mrp="" bldFile="&layer_real_source_path;/" name="browser" proFile="browser.pro" qmakeArgs=""what+=plat_101"" filter=""/>
+ </module>
+ </layer>
+ </systemModel>
+</SystemDefinition>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sysdef_1_5_1.dtd Tue May 04 12:39:38 2010 +0300
@@ -0,0 +1,88 @@
+ <!ELEMENT SystemDefinition (systemModel?, build?)>
+ <!ATTLIST SystemDefinition
+ name CDATA #REQUIRED
+ schema CDATA #REQUIRED>
+ <!ELEMENT systemModel (layer+)>
+ <!ELEMENT layer (logicalset* | module*)*>
+ <!ATTLIST layer
+ name CDATA #REQUIRED
+ levels CDATA #IMPLIED
+ span CDATA #IMPLIED>
+ <!ELEMENT logicalset (logicalsubset* | module* | unit* | package* | prebuilt*)*>
+ <!ATTLIST logicalset name CDATA #REQUIRED>
+ <!ELEMENT logicalsubset (module* | unit* | package* | prebuilt*)*>
+ <!ATTLIST logicalsubset name CDATA #REQUIRED>
+ <!ELEMENT module (component* | unit* | package* | prebuilt*)*>
+ <!ATTLIST module
+ name CDATA #REQUIRED
+ level CDATA #IMPLIED>
+ <!ELEMENT component (unit* | package* | prebuilt*)*>
+ <!ATTLIST component name CDATA #REQUIRED>
+ <!ELEMENT unit EMPTY>
+ <!ATTLIST unit
+ unitID ID #REQUIRED
+ name CDATA #REQUIRED
+ mrp CDATA #REQUIRED
+ filter CDATA #IMPLIED
+ bldFile CDATA #REQUIRED
+ priority CDATA #IMPLIED
+ contract CDATA #IMPLIED
+ proFile CDATA #IMPLIED
+ qmakeArgs CDATA #IMPLIED>
+ <!ELEMENT package EMPTY>
+ <!ATTLIST package
+ name CDATA #REQUIRED
+ mrp CDATA #REQUIRED
+ filter CDATA #IMPLIED
+ contract CDATA #IMPLIED>
+ <!ELEMENT prebuilt EMPTY>
+ <!ATTLIST prebuilt
+ name CDATA #REQUIRED
+ version CDATA #REQUIRED
+ late (Y|N) #IMPLIED
+ filter CDATA #IMPLIED
+ contract CDATA #IMPLIED>
+ <!ELEMENT build (option* | target+ | targetList+ | unitList+ | configuration+)*>
+ <!ELEMENT unitList (unitRef+)>
+ <!ATTLIST unitList
+ name ID #REQUIRED
+ description CDATA #REQUIRED>
+ <!ELEMENT unitRef EMPTY>
+ <!ATTLIST unitRef unit IDREF #REQUIRED>
+ <!ELEMENT targetList EMPTY>
+ <!ATTLIST targetList
+ name ID #REQUIRED
+ description CDATA #REQUIRED
+ target IDREFS #REQUIRED>
+ <!ELEMENT target EMPTY>
+ <!ATTLIST target
+ name ID #REQUIRED
+ abldTarget CDATA #REQUIRED
+ description CDATA #REQUIRED>
+ <!ELEMENT option EMPTY>
+ <!ATTLIST option
+ name ID #REQUIRED
+ abldOption CDATA #REQUIRED
+ description CDATA #REQUIRED
+ enable (Y | N | y | n) #REQUIRED>
+ <!ELEMENT configuration (unitListRef+ | layerRef+ | task+)*>
+ <!ATTLIST configuration
+ name ID #REQUIRED
+ description CDATA #REQUIRED
+ filter CDATA #REQUIRED>
+ <!ELEMENT task ( unitListRef* , (buildLayer | specialInstructions))>
+ <!ELEMENT unitListRef EMPTY>
+ <!ATTLIST unitListRef unitList IDREF #REQUIRED>
+ <!ELEMENT layerRef EMPTY>
+ <!ATTLIST layerRef layerName CDATA #REQUIRED>
+ <!ELEMENT buildLayer EMPTY>
+ <!ATTLIST buildLayer
+ command CDATA #REQUIRED
+ targetList IDREFS #IMPLIED
+ unitParallel (Y | N | y | n) #REQUIRED
+ targetParallel (Y | N | y | n) #IMPLIED>
+ <!ELEMENT specialInstructions EMPTY>
+ <!ATTLIST specialInstructions
+ name CDATA #REQUIRED
+ cwd CDATA #REQUIRED
+ command CDATA #REQUIRED>