/***************************************************************************
- * Copyright (C) 2005-2015 by the Quassel Project *
+ * Copyright (C) 2005-2020 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>;
+
+ TransferManager(QObject* parent = nullptr);
- Transfer *transfer(const QUuid &uuid) const;
- QList<QUuid> transferIds() const;
+ Transfer* transfer(const QUuid& uuid) const;
+ TransferIdList transferIds() const;
signals:
- void transferAdded(const Transfer *transfer);
+ void transferAdded(const QUuid& uuid);
+ void transferRemoved(const QUuid& uuid);
protected:
- void addTransfer(Transfer *transfer);
+ 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);