@@ -153,10 +153,10 @@ void ChatDialog::readPendingDatagrams(){
153
153
in >> msg;
154
154
155
155
if (msg.contains (" Want" )) {
156
- QMap<QString, QMap<QString, quint32> > statusMap ;
156
+ QMap<QString, QMap<QString, quint32> > statusMsg ;
157
157
QDataStream status_in (&datagram, QIODevice::ReadOnly);
158
- status_in >> statusMap ;
159
- // processStatus(statusMap );
158
+ status_in >> statusMsg ;
159
+ processStatusMsg (statusMsg );
160
160
}
161
161
else if (msg.contains (" ChatText" )){
162
162
// Rumor Message
@@ -198,6 +198,34 @@ void ChatDialog::readPendingDatagrams(){
198
198
}
199
199
}
200
200
201
+ void ChatDialog::processStatusMsg (QMap<QString, QMap<QString, quint32> > peerStatusMsg)
202
+ {
203
+ QByteArray rumorDatagram;
204
+ QDataStream rumor_out (&rumorDatagram, QIODevice::ReadWrite);
205
+
206
+
207
+ for (QMap<QString, quint32>::const_iterator iter = peerStatusMsg[" Want" ].begin (); iter != peerStatusMsg[" Want" ].end (); ++iter) {
208
+ if (!statusMap[" Want" ].contains (iter.key ())) {
209
+ // self doesnt have peer
210
+
211
+ }
212
+ }
213
+ for (QMap<QString, quint32>::const_iterator iter = statusMap[" Want" ].begin (); iter != statusMap[" Want" ].end (); ++iter) {
214
+ if (!peerStatusMsg[" Want" ].contains (iter.key ())){
215
+ // peer doesnt have self
216
+
217
+ } else if (peerStatusMsg[" Want" ][iter.key ()] < statusMap[" Want" ][iter.key ()]) {
218
+ // self ahead
219
+
220
+ }
221
+ else if (peerStatusMsg[" Want" ][iter.key ()] > statusMap[" Want" ][iter.key ()]){
222
+ // self behind
223
+ }
224
+ }
225
+
226
+ timer->stop ();
227
+
228
+ }
201
229
202
230
203
231
void ChatDialog::sendDatagram (QByteArray datagram){
0 commit comments