diff options
author | Jonatan Pålsson <jonatan.palsson@pelagicore.com> | 2014-02-06 14:52:14 +0100 |
---|---|---|
committer | Jonatan Pålsson <jonatan.palsson@pelagicore.com> | 2014-02-06 14:52:14 +0100 |
commit | 40eef78114d4f2e89783bb0b6be8831e03083249 (patch) | |
tree | 7c0446c69bddcd2fba123a199df0e14625315a2e | |
parent | fa6aa63f0d4e03e916590b6faf777618d7a675b0 (diff) | |
download | browser-poc-40eef78114d4f2e89783bb0b6be8831e03083249.tar.gz |
Added cachemanager class
-rw-r--r-- | browser/browser.h | 1 | ||||
-rw-r--r-- | browser/browser.pro | 18 | ||||
-rw-r--r-- | browser/browserconfig.cpp | 11 | ||||
-rw-r--r-- | browser/browserhelper.cpp | 8 | ||||
-rw-r--r-- | browser/cachemanager.cpp | 33 | ||||
-rw-r--r-- | browser/cachemanager.h | 43 | ||||
-rw-r--r-- | browser/unit-tests/browserview/testbrowser.cpp | 2 | ||||
-rw-r--r-- | common/browserdefs.h | 13 |
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 + }; } } |