Refactor the transfer stuff
[quassel.git] / src / core / coretransfermanager.cpp
index 981ac28..7fb37e8 100644 (file)
 
 #include "coretransfermanager.h"
 
-#include "transfer.h"
-
+#include "coretransfer.h"
 
 INIT_SYNCABLE_OBJECT(CoreTransferManager)
 CoreTransferManager::CoreTransferManager(QObject *parent)
     : TransferManager(parent)
+{
+    connect(this, SIGNAL(transferAdded(const Transfer*)), SLOT(onTransferAdded(const Transfer*)));
+}
+
+
+CoreTransfer *CoreTransferManager::transfer(const QUuid &uuid) const
+{
+    return qobject_cast<CoreTransfer *>(transfer_(uuid));
+}
+
+
+void CoreTransferManager::addTransfer(CoreTransfer *transfer)
+{
+    TransferManager::addTransfer(transfer);
+}
+
+
+void CoreTransferManager::onTransferAdded(const Transfer *transfer)
+{
+    // for core-side use, publishing a non-const pointer is ok
+    CoreTransfer *t = const_cast<CoreTransfer *>(qobject_cast<const CoreTransfer *>(transfer));
+    if (!t) {
+        qWarning() << "Invalid Transfer added to CoreTransferManager!";
+        return;
+    }
+
+    connect(transfer, SIGNAL(accepted(PeerPtr)), SLOT(onTransferAccepted(PeerPtr)));
+    connect(transfer, SIGNAL(rejected(PeerPtr)), SLOT(onTransferRejected(PeerPtr)));
+
+    emit transferAdded(t);
+}
+
+
+void CoreTransferManager::onTransferAccepted(PeerPtr peer)
+{
+
+}
+
+
+void CoreTransferManager::onTransferRejected(PeerPtr peer)
 {
 
 }