value="qtrapids::ParamsMap_t"/>
</method>
- <method name="setOption">
- <arg type="s" direction="in" name="name"/>
- <arg type="s" direction="in" name="value"/>
+ <method name="setOptions">
+ <arg type="a{ss}" direction="in" name="options"/>
+ <annotation name="com.trolltech.QtDBus.QtTypeName.In0"
+ value="qtrapids::ParamsMap_t"/>
</method>
</interface>
}
+ static QString getTorrentsSubDir() {
+ return QString(".") + appName();
+ }
+
QString getDownloadDir() const {
QString default_dir(QDir::home().absolutePath());
QString v = getParamAndStore("download/directory", default_dir).toString();
}
}
- 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:
qDebug() << "adding " << info.path;
addTorrent_(info.path, info.download_path, ParamsMap_t(), true);
}
+ btSession_.listen_on(settings_->getListenPorts());
}
void TorrentSession::on_alert()
db_->removeTorrent(hash);
}
+void TorrentSession::setOptions(qtrapids::ParamsMap_t options)
+{
+ settings_->setOptions(options);
+}
+
+qtrapids::ParamsMap_t TorrentSession::getOptions()
+{
+ return settings_->getOptions();
+}
+
} // namespace qtrapids
#include <libtorrent/alert_types.hpp>
#include <libtorrent/error_code.hpp>
+#include <utility>
+
class QSettings;
namespace qtrapids
typedef QSharedPointer<TorrentHandle> TorrentHandlePtr;
typedef QHash<QString, TorrentHandlePtr > torrents_t;
+typedef std::pair<int, int> ports_range_t;
class ServerDb;
class ServerSettings;
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);