peer update
git-svn-id: svn://db.shs.com.ru/pip@31 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5
This commit is contained in:
@@ -535,6 +535,24 @@ void PIPeer::sendMBcast(const PIByteArray & ba) {
|
||||
}
|
||||
|
||||
|
||||
void PIPeer::removeNeighbour(const PIString & name) {
|
||||
piForeach (PeerInfo & p, peers)
|
||||
p.neighbours.removeOne(name);
|
||||
self_info.removeNeighbour(name);
|
||||
}
|
||||
|
||||
|
||||
bool PIPeer::removePeer(const PIString & name) {
|
||||
removeNeighbour(name);
|
||||
for (int i = 0; i < peers.size_s(); ++i)
|
||||
if (peers[i].name == name) {
|
||||
peers.remove(i);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
void PIPeer::sendPeerInfo(const PeerInfo & info) {
|
||||
PIByteArray ba;
|
||||
ba << int(1) << info.name << info;
|
||||
@@ -589,9 +607,7 @@ void PIPeer::syncPeers() {
|
||||
peers.remove(i);
|
||||
sendPeerRemove(pn);
|
||||
--i;
|
||||
piForeach (PeerInfo & p, peers)
|
||||
p.removeNeighbour(pn);
|
||||
self_info.removeNeighbour(pn);
|
||||
removeNeighbour(pn);
|
||||
peerDisconnected(pn);
|
||||
peerDisconnectedEvent(pn);
|
||||
change = true;
|
||||
|
||||
@@ -136,7 +136,8 @@ private:
|
||||
EVENT_HANDLER2(void, timerEvent, void * , data, int, delim);
|
||||
|
||||
bool hasPeer(const PIString & name) {piForeachC (PeerInfo & i, peers) if (i.name == name) return true; return false;}
|
||||
bool removePeer(const PIString & name) {for (uint i = 0; i < peers.size(); ++i) if (peers[i].name == name) {peers.remove(i); return true;} return false;}
|
||||
bool removePeer(const PIString & name);
|
||||
void removeNeighbour(const PIString & name);
|
||||
|
||||
void sendPeerInfo(const PeerInfo & info);
|
||||
void sendPeerRemove(const PIString & peer);
|
||||
|
||||
Reference in New Issue
Block a user