Greatly simplify TransferManager API and implementation
[quassel.git] / src / common / transfermanager.h
index 77c864c..5dc17fe 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005-2013 by the Quassel Project                        *
+ *   Copyright (C) 2005-2015 by the Quassel Project                        *
  *   devel@quassel-irc.org                                                 *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
@@ -18,8 +18,7 @@
  *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.         *
  ***************************************************************************/
 
-#ifndef TRANSFERMANAGER_H
-#define TRANSFERMANAGER_H
+#pragma once
 
 #include "syncableobject.h"
 
@@ -33,17 +32,19 @@ class TransferManager : public SyncableObject
     SYNCABLE_OBJECT
 
 public:
-    TransferManager(QObject *parent = 0);
+    using SyncableObject::SyncableObject;
     inline virtual const QMetaObject *syncMetaObject() const { return &staticMetaObject; }
 
-    const Transfer *transfer(const QUuid &uuid) const;
+    Transfer *transfer(const QUuid &uuid) const;
     QList<QUuid> transferIds() const;
 
-public slots:
-    void addTransfer(Transfer *transfer);
-
 signals:
-    void transferAdded(const Transfer *transfer);
+    void transferAdded(const QUuid &uuid);
+    void transferRemoved(const QUuid &uuid);
+
+protected:
+    void addTransfer(Transfer *transfer);
+    void removeTransfer(const QUuid &uuid);
 
 protected slots:
     virtual void onCoreTransferAdded(const QUuid &uuid) { Q_UNUSED(uuid) };
@@ -52,5 +53,3 @@ private:
     QHash<QUuid, Transfer *> _transfers;
 
 };
-
-#endif