X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcore%2Fcoresession.cpp;h=ce5026a0c1a2ef8e230edec9c6ed0e91bcef0ff6;hb=24acf1efa9e91c58d9e64d76e03e7683ac0ac889;hp=9b1395bb47032f8e970837dd4b61c89d4f70a597;hpb=fd25e92f19d6afd4eb02844bcbf20ba132868303;p=quassel.git diff --git a/src/core/coresession.cpp b/src/core/coresession.cpp index 9b1395bb..ce5026a0 100644 --- a/src/core/coresession.cpp +++ b/src/core/coresession.cpp @@ -208,10 +208,7 @@ void CoreSession::restoreSessionState() void CoreSession::addClient(RemotePeer *peer) { - QVariantMap reply; - reply["MsgType"] = "SessionInit"; - reply["SessionState"] = sessionState(); - peer->writeSocketData(reply); + peer->dispatch(sessionState()); signalProxy()->addPeer(peer); } @@ -350,7 +347,7 @@ void CoreSession::processMessages() // recheck if there exists a buffer to store a redirected message in for (int i = 0; i < redirectedMessages.count(); i++) { - const RawMessage &rawMsg = _messageQueue.at(i); + const RawMessage &rawMsg = redirectedMessages.at(i); if (bufferInfoCache.contains(rawMsg.networkId) && bufferInfoCache[rawMsg.networkId].contains(rawMsg.target)) { bufferInfo = bufferInfoCache[rawMsg.networkId][rawMsg.target]; } @@ -375,34 +372,20 @@ void CoreSession::processMessages() } -QVariant CoreSession::sessionState() +Protocol::SessionState CoreSession::sessionState() const { - QVariantMap v; - - v["CoreFeatures"] = (int)Quassel::features(); - - QVariantList bufs; - foreach(BufferInfo id, buffers()) bufs << qVariantFromValue(id); - v["BufferInfos"] = bufs; - QVariantList networkids; - foreach(NetworkId id, _networks.keys()) networkids << qVariantFromValue(id); - v["NetworkIds"] = networkids; - - quint32 ircusercount = 0; - quint32 ircchannelcount = 0; - foreach(Network *net, _networks.values()) { - ircusercount += net->ircUserCount(); - ircchannelcount += net->ircChannelCount(); - } - v["IrcUserCount"] = ircusercount; - v["IrcChannelCount"] = ircchannelcount; + QVariantList bufferInfos; + QVariantList networkIds; + QVariantList identities; - QList idlist; - foreach(Identity *i, _identities.values()) idlist << qVariantFromValue(*i); - v["Identities"] = idlist; + foreach(const BufferInfo &id, buffers()) + bufferInfos << QVariant::fromValue(id); + foreach(const NetworkId &id, _networks.keys()) + networkIds << QVariant::fromValue(id); + foreach(const Identity *i, _identities.values()) + identities << QVariant::fromValue(*i); - //v["Payload"] = QByteArray(100000000, 'a'); // for testing purposes - return v; + return Protocol::SessionState(identities, bufferInfos, networkIds); }