src: Yearly copyright bump
[quassel.git] / src / common / transfermanager.h
index a8f186b..79f62b5 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005-2013 by the Quassel Project                        *
+ *   Copyright (C) 2005-2019 by the Quassel Project                        *
  *   devel@quassel-irc.org                                                 *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
  *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.         *
  ***************************************************************************/
 
-#ifndef TRANSFERMANAGER_H
-#define TRANSFERMANAGER_H
+#pragma once
 
-#include "syncableobject.h"
+#include "common-export.h"
 
+#include <QHash>
+#include <QList>
 #include <QUuid>
 
+#include "syncableobject.h"
+
 class Transfer;
 
-class TransferManager : public SyncableObject
+class COMMON_EXPORT TransferManager : public SyncableObject
 {
     Q_OBJECT
     SYNCABLE_OBJECT
 
+    Q_PROPERTY(TransferManager::TransferIdList transferIds READ transferIds WRITE setTransferIds)
+
 public:
-    TransferManager(QObject *parent = 0);
-    inline virtual const QMetaObject *syncMetaObject() const { return &staticMetaObject; }
+    using TransferIdList = QList<QUuid>;
 
-    const Transfer *transfer(const QUuid &uuid) const;
-    QList<QUuid> transferIds() const;
+    TransferManager(QObject* parent = nullptr);
 
-public slots:
-    void addTransfer(Transfer *transfer);
+    Transfer* transfer(const QUuid& uuid) const;
+    TransferIdList transferIds() const;
 
 signals:
-    void transferAdded(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) };
+    virtual void setTransferIds(const TransferIdList& transferIds){Q_UNUSED(transferIds)};
+    virtual void onCoreTransferAdded(const QUuid& transferId){Q_UNUSED(transferId)};
 
 private:
-    QHash<QUuid, Transfer *> _transfers;
-
+    QHash<QUuid, Transfer*> _transfers;
 };
 
-#endif
+QDataStream& operator<<(QDataStream& out, const TransferManager::TransferIdList& transferIds);
+QDataStream& operator>>(QDataStream& in, TransferManager::TransferIdList& state);