Skip to content

Commit 82f8471

Browse files
committed
Process status message partially done
1 parent 439bf7a commit 82f8471

File tree

4 files changed

+32
-3
lines changed

4 files changed

+32
-3
lines changed

p2p-networking/main.cc

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -153,10 +153,10 @@ void ChatDialog::readPendingDatagrams(){
153153
in >> msg;
154154

155155
if (msg.contains("Want")) {
156-
QMap<QString, QMap<QString, quint32> > statusMap;
156+
QMap<QString, QMap<QString, quint32> > statusMsg;
157157
QDataStream status_in(&datagram, QIODevice::ReadOnly);
158-
status_in >> statusMap;
159-
//processStatus(statusMap);
158+
status_in >> statusMsg;
159+
processStatusMsg(statusMsg);
160160
}
161161
else if(msg.contains("ChatText")){
162162
//Rumor Message
@@ -198,6 +198,34 @@ void ChatDialog::readPendingDatagrams(){
198198
}
199199
}
200200

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+
}
201229

202230

203231
void ChatDialog::sendDatagram(QByteArray datagram){

p2p-networking/main.hh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ private:
5353
QMap<QString, QVariant> curr_msg;
5454
void sendDatagram(QByteArray datagram);
5555
QByteArray serialize(QString text);
56+
void processStatusMsg(QMap<QString, QMap<QString, quint32> > statusMsg);
5657

5758

5859
};

p2p-networking/main.o

12 KB
Binary file not shown.

p2p-networking/p2papp

4.08 KB
Binary file not shown.

0 commit comments

Comments
 (0)