summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonatan Pålsson <jonatan.palsson@pelagicore.com>2014-02-06 14:52:14 +0100
committerJonatan Pålsson <jonatan.palsson@pelagicore.com>2014-02-06 14:52:14 +0100
commit40eef78114d4f2e89783bb0b6be8831e03083249 (patch)
tree7c0446c69bddcd2fba123a199df0e14625315a2e
parentfa6aa63f0d4e03e916590b6faf777618d7a675b0 (diff)
downloadbrowser-poc-40eef78114d4f2e89783bb0b6be8831e03083249.tar.gz
Added cachemanager class
-rw-r--r--browser/browser.h1
-rw-r--r--browser/browser.pro18
-rw-r--r--browser/browserconfig.cpp11
-rw-r--r--browser/browserhelper.cpp8
-rw-r--r--browser/cachemanager.cpp33
-rw-r--r--browser/cachemanager.h43
-rw-r--r--browser/unit-tests/browserview/testbrowser.cpp2
-rw-r--r--common/browserdefs.h13
8 files changed, 119 insertions, 10 deletions
diff --git a/browser/browser.h b/browser/browser.h
index 879ffa0..06b982d 100644
--- a/browser/browser.h
+++ b/browser/browser.h
@@ -21,6 +21,7 @@
#include "webpagewindow.h"
#include "userinput.h"
#include "browserview.h"
+#include "cachemanager.h"
class browser : public QObject, protected QDBusContext
{
diff --git a/browser/browser.pro b/browser/browser.pro
index 6f9828f..413bdcf 100644
--- a/browser/browser.pro
+++ b/browser/browser.pro
@@ -1,6 +1,10 @@
QT += dbus webkitwidgets
+my_dbus_cachemanager_adaptors.files += ../common/ICacheManager.xml
+my_dbus_cachemanager_adaptors.header_flags = -i cachemanager.h -i ../common/browserdefs.h -l cachemanager
+my_dbus_cachemanager_adaptors.source_flags = -l cachemanager
+
my_dbus_bookmark_adaptors.files += ../common/IBookmarkManager.xml
my_dbus_bookmark_adaptors.header_flags = -i bookmarkmanager.h -i ../common/browserdefs.h -l bookmarkmanager
my_dbus_bookmark_adaptors.source_flags = -l bookmarkmanager
@@ -16,7 +20,11 @@ my_dbus_browser_adaptors.files += ../common/IBrowser.xml
my_dbus_browser_adaptors.header_flags = -i browser.h -i ../common/browserdefs.h -l browser
my_dbus_browser_adaptors.source_flags = -l browser
-DBUS_ADAPTORS += my_dbus_bookmark_adaptors my_dbus_userinput_adaptors my_dbus_webpagewindow_adaptors my_dbus_browser_adaptors
+DBUS_ADAPTORS += my_dbus_bookmark_adaptors \
+ my_dbus_cachemanager_adaptors \
+ my_dbus_userinput_adaptors \
+ my_dbus_webpagewindow_adaptors \
+ my_dbus_browser_adaptors \
SOURCES += main.cpp \
bookmarkmanager.cpp \
@@ -25,6 +33,8 @@ SOURCES += main.cpp \
browser.cpp \
browserhelper.cpp \
browserview.cpp \
+ browserconfig.cpp \
+ cachemanager.cpp \
../common/bookmark.cpp \
HEADERS += \
@@ -34,9 +44,7 @@ HEADERS += \
browser.h \
browserhelper.h \
browserview.h \
+ browserconfig.h \
+ cachemanager.h \
../common/bookmark.h \
../common/browserdefs.h \
-
-OTHER_FILES += \
- qml/browser/main.qml \
-
diff --git a/browser/browserconfig.cpp b/browser/browserconfig.cpp
index 89297a8..46446f5 100644
--- a/browser/browserconfig.cpp
+++ b/browser/browserconfig.cpp
@@ -14,10 +14,13 @@
#include "browserconfig.h"
-template void BrowserConfig::setValue<int>(BrowserConfig::BrowserConfigKey, int);
-template void BrowserConfig::setValue<QString>(BrowserConfig::BrowserConfigKey, QString);
-template int BrowserConfig::getValue<int>(BrowserConfig::BrowserConfigKey);
-template QString BrowserConfig::getValue<QString>(BrowserConfig::BrowserConfigKey);
+template void BrowserConfig::setValue<int>(BrowserConfig::BrowserConfigKey, int);
+template void BrowserConfig::setValue<QString>(BrowserConfig::BrowserConfigKey, QString);
+template void BrowserConfig::setValue<qlonglong>(BrowserConfig::BrowserConfigKey, qlonglong);
+
+template int BrowserConfig::getValue<int>(BrowserConfig::BrowserConfigKey);
+template QString BrowserConfig::getValue<QString>(BrowserConfig::BrowserConfigKey);
+template qlonglong BrowserConfig::getValue<qlonglong>(BrowserConfig::BrowserConfigKey);
BrowserConfig::BrowserConfig() {
m_qsettings = new QSettings("browserpoc");
diff --git a/browser/browserhelper.cpp b/browser/browserhelper.cpp
index 63a1dba..97dcb7d 100644
--- a/browser/browserhelper.cpp
+++ b/browser/browserhelper.cpp
@@ -18,6 +18,7 @@
#include "iuserinput_adaptor.h"
#include "iwebpagewindow_adaptor.h"
#include "ibrowser_adaptor.h"
+#include "icachemanager_adaptor.h"
browserhelper::browserhelper(QString instanceId, QObject *parent) :
@@ -53,6 +54,13 @@ browserhelper::browserhelper(QString instanceId, QObject *parent) :
exit(1);
}
+ cachemanager *cm = new cachemanager();
+ new ICacheManagerAdaptor(cm);
+ if(!connection->registerObject("/Browser/ICacheManager", cm)) {
+ qDebug() << "failed register object ICacheManager";
+ exit(1);
+ }
+
wpw = new webpagewindow();
new IWebPageWindowAdaptor(wpw);
br->wpw = wpw;
diff --git a/browser/cachemanager.cpp b/browser/cachemanager.cpp
new file mode 100644
index 0000000..cefcd89
--- /dev/null
+++ b/browser/cachemanager.cpp
@@ -0,0 +1,33 @@
+/**
+ * Copyright (C) 2013, Pelagicore
+ *
+ * Author: Jonatan Pålsson <jonatan.palsson@pelagicore.com>
+ *
+ * This file is part of the GENIVI project Browser Proof-Of-Concept
+ * For further information, see http://genivi.org/
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <QObject>
+#include <QDBusContext>
+
+#include "cachemanager.h"
+#include "../common/browserdefs.h"
+
+cachemanager::cachemanager(QObject *parent) :
+ QObject(parent)
+ {
+ m_config = new BrowserConfig();
+}
+
+qlonglong cachemanager::getCacheSize(){
+ return m_config->getValue<qlonglong>(BrowserConfig::CONFIG_CACHESIZE);
+}
+
+conn::brw::CACHE_POLICY cachemanager::getCachePolicy(){}
+conn::brw::ERROR_IDS cachemanager::getMaximumCacheSize(){}
+conn::brw::ERROR_IDS cachemanager::setCachePolicy(conn::brw::CACHE_POLICY){}
+conn::brw::ERROR_IDS cachemanager::clearCache(){}
diff --git a/browser/cachemanager.h b/browser/cachemanager.h
new file mode 100644
index 0000000..af6d431
--- /dev/null
+++ b/browser/cachemanager.h
@@ -0,0 +1,43 @@
+/**
+ * Copyright (C) 2013, Pelagicore
+ *
+ * Author: Jonatan Pålsson <jonatan.palsson@pelagicore.com>
+ *
+ * This file is part of the GENIVI project Browser Proof-Of-Concept
+ * For further information, see http://genivi.org/
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#ifndef CACHEMANAGER_H
+#define CACHEMANAGER_H
+
+#include <QObject>
+#include <QDBusContext>
+
+#include "browserconfig.h"
+#include "../common/browserdefs.h"
+
+class cachemanager : public QObject, protected QDBusContext
+{
+ Q_OBJECT
+public:
+ cachemanager(QObject *parent = 0);
+
+signals:
+ void onCacheChanged();
+
+public Q_SLOTS:
+ qlonglong getCacheSize();
+ conn::brw::CACHE_POLICY getCachePolicy();
+ conn::brw::ERROR_IDS getMaximumCacheSize();
+ conn::brw::ERROR_IDS setCachePolicy(conn::brw::CACHE_POLICY);
+ conn::brw::ERROR_IDS clearCache();
+
+private:
+ BrowserConfig *m_config = NULL;
+};
+
+#endif // CACHEMANAGER_H
diff --git a/browser/unit-tests/browserview/testbrowser.cpp b/browser/unit-tests/browserview/testbrowser.cpp
index eaaa731..3bb7903 100644
--- a/browser/unit-tests/browserview/testbrowser.cpp
+++ b/browser/unit-tests/browserview/testbrowser.cpp
@@ -194,7 +194,7 @@ void TestBrowser::testCanGetFavicon () {
void TestBrowser::testCanSetGetConfigParameter() {
BrowserConfig conf;
- conf.setValue<int>(BrowserConfig::CONFIG_CACHESIZE, 1337);
+ conf.setValue(BrowserConfig::CONFIG_CACHESIZE, 1337);
QVERIFY(conf.getValue<int>(BrowserConfig::CONFIG_CACHESIZE) == 1337);
conf.setValue<QString>(BrowserConfig::CONFIG_CACHESIZE, "1337");
diff --git a/common/browserdefs.h b/common/browserdefs.h
index 0f1fa84..2756e97 100644
--- a/common/browserdefs.h
+++ b/common/browserdefs.h
@@ -524,6 +524,19 @@ namespace conn {
return argument;
}
+ /*!
+ * Defines policy of cache usage.
+ CP_CACHE_ONLINE - Use cache if present, network if not.
+ CP_CACHE_ONLY - Only cache is used.
+ CP_ONLINE_ONLY - Cache is disabled.
+
+ */
+ //## type CACHE_POLICY
+ enum CACHE_POLICY {
+ CP_ONLINE_CACHE = 0x00,
+ CP_CACHE_ONLY = 0x01,
+ CP_ONLINE_ONLY = 0x02
+ };
}
}