Added Q_FUNC_INFO macros to some functions.
[qtrapids] / src / server / TorrentSession.cpp
index 38140b1..7120427 100644 (file)
@@ -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.             *
+ ***************************************************************************/
 #include "TorrentSession.hpp"
 #include "TorrentHandle.hpp"
 #include "AlertWaiterThread.hpp"
@@ -23,7 +40,7 @@ TorrentSession::TorrentSession(QObject *parent, QSettings *settings)
        QDBusConnection dbus = QDBusConnection::sessionBus();
        dbus.registerObject("/qtrapids", this);
        dbus.registerService("com.ixonos.qtrapids");
-
+       
        alertWaiter_->allAlerts();
        connect(alertWaiter_, SIGNAL(alert()), this, SLOT(on_alert()));
        alertWaiter_->start();
@@ -38,6 +55,15 @@ TorrentSession::TorrentSession(QObject *parent, QSettings *settings)
        
 }
 
+
+TorrentSession::~TorrentSession()
+{
+       alertWaiter_->stop();
+       alertWaiter_->wait();
+       emit sessionTerminated();
+}
+
+
 void TorrentSession::loadState()
 {
        TorrentDownloadInfo info;
@@ -84,7 +110,9 @@ void TorrentSession::on_alert()
                        state.up_rate = handle.uploadRate();
                        state.seeds = handle.numSeeds();
                        state.leeches = handle.numLeeches();
-
+                       state.total_size = handle.getTotalSize();
+                       state.total_done = handle.getTotalDone();
+                       
                        ParamsMap_t params;
                        emit alert(state, params);
                }
@@ -130,20 +158,20 @@ void TorrentSession::addTorrent_(const QString &path, const QString &save_path
        QDir::home().mkdir(settings_->getTorrentsSubDir());
 
        if (!torrent_file.exists()) {
-               qWarning() << "Torrent file " << path << "doesn't exist";
+               qWarning() << Q_FUNC_INFO << " Torrent file " << path << "doesn't exist";
                return;
        }
 
        QString new_torrent_fname(QDir(settings_->getTorrentsDir())
                                  .filePath(QFileInfo(path).fileName()));
 #ifdef QTRAPIDS_DEBUG
-       qDebug() << "copy to " << new_torrent_fname;
+       qDebug() << Q_FUNC_INFO << " copy to " << new_torrent_fname;
 #endif
 
        torrent_file.copy(new_torrent_fname);
        
 #ifdef QTRAPIDS_DEBUG
-       qDebug() << "addTorrent: " << path << " save to " << save_path;
+       qDebug() << Q_FUNC_INFO << path << " save to " << save_path;
 #endif
 
        boost::intrusive_ptr<libtorrent::torrent_info> tiTmp
@@ -192,7 +220,7 @@ void TorrentSession::removeTorrent(const QString &hash)
 
        if (p == torrents_.end()) {
 #ifdef QTRAPIDS_DEBUG
-               qDebug() << "Invalid request to remove torrent with hash " << hash;
+               qDebug() << Q_FUNC_INFO << " Invalid request to remove torrent with hash " << hash;
 #endif
                return;
        }
@@ -246,4 +274,11 @@ qtrapids::ParamsMap_t TorrentSession::getOptions()
 }
 
 
+void TorrentSession::terminateSession()
+{
+       qDebug() << "Terminate called";
+       // Emiting terminate() here causes the server application to quit in main()
+       emit terminate();
+}
+
 } // namespace qtrapids