X-Git-Url: http://git.maemo.org/git/?p=qtrapids;a=blobdiff_plain;f=src%2Fserver%2FTorrentSession.hpp;h=e5e4244edd85d332b4e85e3dbcd6c87b94dc0020;hp=6240024484d851198e60e973670df7989f491cb9;hb=0ea35119386f27d7ea6e8de26d4d19ab6dca4838;hpb=4fda70ff265b1a5a1f37597f57253272a2b22fbf diff --git a/src/server/TorrentSession.hpp b/src/server/TorrentSession.hpp index 6240024..e5e4244 100644 --- a/src/server/TorrentSession.hpp +++ b/src/server/TorrentSession.hpp @@ -1,3 +1,20 @@ +/*************************************************************************** + * Copyright (C) 2010 by Ixonos Plc * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; version 2 of the License. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ #ifndef _TEST_HPP_ #define _TEST_HPP_ @@ -16,6 +33,8 @@ #include #include +#include + class QSettings; namespace qtrapids @@ -26,6 +45,7 @@ typedef QWeakPointer settings_weak_ptr; class AlertWaiterThread; typedef libtorrent::session session_t; typedef libtorrent::session const* session_cptr; +typedef libtorrent::session_settings session_settings_t; typedef libtorrent::add_torrent_params add_torrent_params_t; typedef libtorrent::alert alert_t; @@ -35,6 +55,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; @@ -46,26 +67,36 @@ class TorrentSession : public QObject Q_CLASSINFO("D-Bus Interface", "com.ixonos.qtrapids"); public: - TorrentSession(QObject *parent, QSettings *); - + virtual ~TorrentSession(); + public slots: - void getState(); 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(); + void terminateSession(); + signals: void alert(qtrapids::TorrentState info, qtrapids::ParamsMap_t other_info); - + void terminate(); + void sessionTerminated(); + private slots: void on_alert(); private: + + void loadState(); + void addTorrent_(const QString &, const QString &, const qtrapids::ParamsMap_t &, bool); + session_t btSession_; AlertWaiterThread *alertWaiter_; torrents_t torrents_; + std::auto_ptr settings_; + std::auto_ptr db_; }; } // namespace qtrapids