X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=core%2Fcoreproxy.cpp;h=5ae8d96137ae1f7f3736ef6d1868c690f72431ae;hp=913804700ebcf5a5978103877eb58355db3cb23d;hb=2c9184c37fc54adb7670ea261a8e34c99a82a285;hpb=1c7d9f13b744cd517c0769f453fd8dc3106cd94c diff --git a/core/coreproxy.cpp b/core/coreproxy.cpp index 91380470..5ae8d961 100644 --- a/core/coreproxy.cpp +++ b/core/coreproxy.cpp @@ -23,9 +23,12 @@ #include "coreproxy.h" #include "global.h" #include "util.h" +#include "core.h" CoreProxy::CoreProxy() { if(coreProxy) qFatal("Trying to instantiate more than one CoreProxy object!"); + coreProxy = this; + core = new Core(); connect(global, SIGNAL(dataPutLocally(QString)), this, SLOT(updateGlobalData(QString))); connect(&server, SIGNAL(newConnection()), this, SLOT(incomingConnection())); @@ -85,11 +88,24 @@ void CoreProxy::processClientInit(QTcpSocket *socket, const QVariant &v) { coreData[key] = global->getData(key); } reply["CoreData"] = coreData; - //QVariant payload = QByteArray(1000000, 'a'); - //reply["payload"] = payload; + /* + VarMap bl; + QHash > log = core->getBackLog(); + foreach(QString net, log.keys()) { + QByteArray buf; + QDataStream out(&buf, QIODevice::WriteOnly); out.setVersion(QDataStream::Qt_4_2); + foreach(Message msg, log[net]) { out << msg; } + bl[net] = buf; + } + reply["CoreBackLog"] = bl; + */ + QList bufs; + foreach(BufferId id, core->getBuffers()) { bufs.append(QVariant::fromValue(id)); } + reply["CoreBuffers"] = bufs; QList sigdata; sigdata.append(CS_CORE_STATE); sigdata.append(QVariant(reply)); sigdata.append(QVariant()); sigdata.append(QVariant()); writeDataToDevice(socket, QVariant(sigdata)); + emit requestServerStates(); } void CoreProxy::processClientUpdate(QTcpSocket *socket, QString key, QVariant data) { @@ -122,9 +138,12 @@ void CoreProxy::recv(GUISignal sig, QVariant arg1, QVariant arg2, QVariant arg3) //qDebug() << "[CORE] Received signal" << sig << ":" << arg1<(), arg2.toString()); break; case GS_REQUEST_CONNECT: emit gsRequestConnect(arg1.toStringList()); break; - default: qWarning() << "Unknown signal in CoreProxy::recv: " << sig; + case GS_IMPORT_BACKLOG: emit gsImportBacklog(); break; + case GS_REQUEST_BACKLOG: emit gsRequestBacklog(arg1.value(), arg2, arg3); break; + //default: qWarning() << "Unknown signal in CoreProxy::recv: " << sig; + default: emit gsGeneric(sig, arg1, arg2, arg3); } }