/***************************************************************************
- * Copyright (C) 2005-2013 by the Quassel Project *
+ * Copyright (C) 2005-2018 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
-
-#include "syncableobject.h"
+#pragma once
+#include <QHash>
+#include <QList>
#include <QUuid>
+#include "syncableobject.h"
+
class Transfer;
class 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);
+ const QMetaObject *syncMetaObject() const override { return &staticMetaObject; }
- 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:
- Transfer *transfer_(const QUuid &uuid) const;
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;
-
};
-#endif
+QDataStream &operator<<(QDataStream &out, const TransferManager::TransferIdList &transferIds);
+QDataStream &operator>>(QDataStream &in, TransferManager::TransferIdList &state);