#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()));
coreData[key] = global->getData(key);
}
reply["CoreData"] = coreData;
- //QVariant payload = QByteArray(1000000, 'a');
- //reply["payload"] = payload;
+ /*
+ VarMap bl;
+ QHash<QString, QList<Message> > 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<QVariant> bufs;
+ foreach(BufferId id, core->getBuffers()) { bufs.append(QVariant::fromValue(id)); }
+ reply["CoreBuffers"] = bufs;
QList<QVariant> 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) {
//qDebug() << "[CORE] Received signal" << sig << ":" << arg1<<arg2<<arg3;
switch(sig) {
case GS_UPDATE_GLOBAL_DATA: emit gsPutGlobalData(arg1.toString(), arg2); break;
- case GS_USER_INPUT: emit gsUserInput(arg1.toString()); break;
+ case GS_USER_INPUT: emit gsUserInput(arg1.value<BufferId>(), 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<BufferId>(), arg2, arg3); break;
+ //default: qWarning() << "Unknown signal in CoreProxy::recv: " << sig;
+ default: emit gsGeneric(sig, arg1, arg2, arg3);
}
}