PIPeer data transfers fixnsfer
git-svn-id: svn://db.shs.com.ru/pip@49 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5
This commit is contained in:
@@ -19,7 +19,7 @@
|
|||||||
|
|
||||||
#include "pipeer.h"
|
#include "pipeer.h"
|
||||||
|
|
||||||
#define _PIPEER_MSG_SIZE 8000
|
#define _PIPEER_MSG_SIZE 4000
|
||||||
#define _PIPEER_MSG_TTL 100
|
#define _PIPEER_MSG_TTL 100
|
||||||
#define _PIPEER_MULTICAST_TTL 4
|
#define _PIPEER_MULTICAST_TTL 4
|
||||||
#define _PIPEER_MULTICAST_IP "232.13.3.12"
|
#define _PIPEER_MULTICAST_IP "232.13.3.12"
|
||||||
@@ -42,6 +42,11 @@ PIPeer::PeerData::PeerData(const PIString & n): PIObject(n) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
PIPeer::PeerData::~PeerData() {
|
||||||
|
t.stop();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void PIPeer::PeerData::dtThread() {
|
void PIPeer::PeerData::dtThread() {
|
||||||
piCoutObj << "send DT ...";
|
piCoutObj << "send DT ...";
|
||||||
dt_out.send(data);
|
dt_out.send(data);
|
||||||
@@ -68,6 +73,11 @@ void PIPeer::PeerData::receivedPacket(uchar type, const PIByteArray & d) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void PIPeer::PeerData::setDist(int dist) {
|
||||||
|
dt_in.setTimeout(10 * dist);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
PIPeer::PeerInfo::Address::Address(const PIString & a, const PIString & m): address(a), netmask(m) {
|
PIPeer::PeerInfo::Address::Address(const PIString & a, const PIString & m): address(a), netmask(m) {
|
||||||
@@ -693,6 +703,8 @@ void PIPeer::syncPeers() {
|
|||||||
cp.sync = 0;
|
cp.sync = 0;
|
||||||
else
|
else
|
||||||
cp.sync++;
|
cp.sync++;
|
||||||
|
if (cp._data)
|
||||||
|
cp._data->setDist(cp.dist + 1);
|
||||||
cp.was_update = false;
|
cp.was_update = false;
|
||||||
}
|
}
|
||||||
pingNeighbours();
|
pingNeighbours();
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ private:
|
|||||||
PIOBJECT_SUBCLASS(PeerData, PIObject)
|
PIOBJECT_SUBCLASS(PeerData, PIObject)
|
||||||
public:
|
public:
|
||||||
PeerData(const PIString & n);
|
PeerData(const PIString & n);
|
||||||
|
~PeerData();
|
||||||
EVENT_HANDLER1(void, dtSendRequestIn, PIByteArray &, data) {data.push_front(uchar(2)); sendRequest(name(), data);}
|
EVENT_HANDLER1(void, dtSendRequestIn, PIByteArray &, data) {data.push_front(uchar(2)); sendRequest(name(), data);}
|
||||||
EVENT_HANDLER1(void, dtSendRequestOut, PIByteArray &, data) {data.push_front(uchar(3)); sendRequest(name(), data);}
|
EVENT_HANDLER1(void, dtSendRequestOut, PIByteArray &, data) {data.push_front(uchar(3)); sendRequest(name(), data);}
|
||||||
EVENT_HANDLER1(void, dtReceiveFinishedIn, bool, ok) {if (ok) received(name(), dt_in.data());}
|
EVENT_HANDLER1(void, dtReceiveFinishedIn, bool, ok) {if (ok) received(name(), dt_in.data());}
|
||||||
@@ -45,6 +46,7 @@ private:
|
|||||||
EVENT2(sendRequest, const PIString &, to, const PIByteArray &, data);
|
EVENT2(sendRequest, const PIString &, to, const PIByteArray &, data);
|
||||||
bool send(const PIByteArray & d);
|
bool send(const PIByteArray & d);
|
||||||
void receivedPacket(uchar type, const PIByteArray & d);
|
void receivedPacket(uchar type, const PIByteArray & d);
|
||||||
|
void setDist(int dist);
|
||||||
PIByteArray data;
|
PIByteArray data;
|
||||||
PIThread t;
|
PIThread t;
|
||||||
PIDataTransfer dt_in, dt_out;
|
PIDataTransfer dt_in, dt_out;
|
||||||
|
|||||||
@@ -283,6 +283,7 @@ void Daemon::dataReceived(const PIString & from, const PIByteArray & data) {
|
|||||||
piForeach (PIFile::FileInfo & f, fil)
|
piForeach (PIFile::FileInfo & f, fil)
|
||||||
f.path = f.name();
|
f.path = f.name();
|
||||||
rba << int(ReplyChangeDir) << r->dir_my.absolutePath() << fil;
|
rba << int(ReplyChangeDir) << r->dir_my.absolutePath() << fil;
|
||||||
|
piCout << "cd to" << dir << ", abs =" << r->dir_my.absolutePath();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ReplyHostInfo:
|
case ReplyHostInfo:
|
||||||
|
|||||||
Reference in New Issue
Block a user