From: deztructor Date: Tue, 24 Nov 2009 08:16:11 +0000 (+0000) Subject: Server methods to store/get options X-Git-Url: http://git.maemo.org/git/?p=qtrapids;a=commitdiff_plain;h=1ebd176c1cdaf346ae947eb1c2b11513e6460bc9;ds=sidebyside Server methods to store/get options git-svn-id: file:///svnroot/qtrapids/trunk@49 42ac0dd5-4c8c-4c71-bb3e-ecdfe252ffda --- diff --git a/dbus/com.ixonos.qtrapids.xml b/dbus/com.ixonos.qtrapids.xml index 1496a78..520085d 100644 --- a/dbus/com.ixonos.qtrapids.xml +++ b/dbus/com.ixonos.qtrapids.xml @@ -34,9 +34,10 @@ value="qtrapids::ParamsMap_t"/> - - - + + + diff --git a/src/server/ServerDb.hpp b/src/server/ServerDb.hpp index 9bda677..fa31059 100644 --- a/src/server/ServerDb.hpp +++ b/src/server/ServerDb.hpp @@ -34,6 +34,10 @@ public: } + static QString getTorrentsSubDir() { + return QString(".") + appName(); + } + QString getDownloadDir() const { QString default_dir(QDir::home().absolutePath()); QString v = getParamAndStore("download/directory", default_dir).toString(); @@ -45,8 +49,30 @@ public: } } - static QString getTorrentsSubDir() { - return QString(".") + appName(); + ports_range_t getListenPorts() const { + + ports_range_t default_ports(13131, 13132); + default_ports.first = getParamAndStore("net/listen_range_begin", default_ports.first).toUInt(); + default_ports.second = getParamAndStore("net/listen_range_end", default_ports.second).toUInt(); + return default_ports; + } + + /** + @todo deztructor: there is no check for option type yet + */ + void setOptions(ParamsMapConst_t &options) { + for (ParamsMapConstIterator_t p = options.constBegin(); p != options.constEnd(); ++p) { + settings_.setValue(p.key(), p.value()); + } + } + + ParamsMap_t getOptions() const { + ParamsMap_t options; + QStringList keys = settings_.allKeys(); + for (QStringList::const_iterator p = keys.begin(); p != keys.end(); ++p) { + options[*p] = settings_.value(*p).toString(); + } + return options; } private: diff --git a/src/server/TorrentSession.cpp b/src/server/TorrentSession.cpp index 94c2465..b5d6e9d 100644 --- a/src/server/TorrentSession.cpp +++ b/src/server/TorrentSession.cpp @@ -39,6 +39,7 @@ void TorrentSession::loadState() qDebug() << "adding " << info.path; addTorrent_(info.path, info.download_path, ParamsMap_t(), true); } + btSession_.listen_on(settings_->getListenPorts()); } void TorrentSession::on_alert() @@ -190,5 +191,15 @@ void TorrentSession::removeTorrent(const QString &hash) db_->removeTorrent(hash); } +void TorrentSession::setOptions(qtrapids::ParamsMap_t options) +{ + settings_->setOptions(options); +} + +qtrapids::ParamsMap_t TorrentSession::getOptions() +{ + return settings_->getOptions(); +} + } // namespace qtrapids diff --git a/src/server/TorrentSession.hpp b/src/server/TorrentSession.hpp index 1baffac..4f56050 100644 --- a/src/server/TorrentSession.hpp +++ b/src/server/TorrentSession.hpp @@ -16,6 +16,8 @@ #include #include +#include + class QSettings; namespace qtrapids @@ -35,6 +37,7 @@ typedef libtorrent::libtorrent_exception torrent_exception_t; typedef QSharedPointer TorrentHandlePtr; typedef QHash torrents_t; +typedef std::pair ports_range_t; class ServerDb; class ServerSettings; @@ -55,6 +58,8 @@ public slots: void addTorrent(const QString &path, const QString &save_path , qtrapids::ParamsMap_t other_params); void removeTorrent(const QString &hash); + void setOptions(qtrapids::ParamsMap_t options); + qtrapids::ParamsMap_t getOptions(); signals: void alert(qtrapids::TorrentState info, qtrapids::ParamsMap_t other_info);