X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Fserver%2FTorrentSession.hpp;h=e5e4244edd85d332b4e85e3dbcd6c87b94dc0020;hb=711f20225524f059da9296f814a06ab9332bb324;hp=76b11f25d31778652682a398b20408fc03d80cad;hpb=06410091b1e07c443849f0fe71050654c6fb9710;p=qtrapids diff --git a/src/server/TorrentSession.hpp b/src/server/TorrentSession.hpp index 76b11f2..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,57 +33,71 @@ #include #include +#include + class QSettings; namespace qtrapids { - typedef QWeakPointer settings_weak_ptr; - - class AlertWaiterThread; - typedef libtorrent::session session_t; - typedef libtorrent::session const* session_cptr; - - typedef libtorrent::add_torrent_params add_torrent_params_t; - typedef libtorrent::alert alert_t; - // typedef libtorrent::alert const* alert_cptr; - typedef libtorrent::torrent_alert torrent_alert_t; - typedef libtorrent::libtorrent_exception torrent_exception_t; - - typedef QSharedPointer TorrentHandlePtr; - typedef QHash torrents_t; - - class ServerDb; - class ServerSettings; +typedef QWeakPointer settings_weak_ptr; - class TorrentSession : public QObject - { +class AlertWaiterThread; +typedef libtorrent::session session_t; +typedef libtorrent::session const* session_cptr; +typedef libtorrent::session_settings session_settings_t; - Q_OBJECT; - Q_CLASSINFO("D-Bus Interface", "com.ixonos.qtrapids"); +typedef libtorrent::add_torrent_params add_torrent_params_t; +typedef libtorrent::alert alert_t; +// typedef libtorrent::alert const* alert_cptr; +typedef libtorrent::torrent_alert torrent_alert_t; +typedef libtorrent::libtorrent_exception torrent_exception_t; - public: +typedef QSharedPointer TorrentHandlePtr; +typedef QHash torrents_t; +typedef std::pair ports_range_t; - TorrentSession(QObject *parent, QSettings *); +class ServerDb; +class ServerSettings; - public slots: - - void getState(); - void addTorrent(const QString &path, const QString &save_path - , qtrapids::ParamsMap_t other_params); - void removeTorrent(const QString &hash); - - signals: - void alert(qtrapids::TorrentState info, qtrapids::ParamsMap_t other_info); - - private slots: - void on_alert(); +class TorrentSession : public QObject +{ - private: - session_t btSession_; - AlertWaiterThread *alertWaiter_; - torrents_t torrents_; - }; + Q_OBJECT; + 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