git-svn-id: svn://db.shs.com.ru/pip@268 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5
This commit is contained in:
@@ -1071,6 +1071,8 @@ void PIConnection::DevicePool::run() {
|
|||||||
void __DevicePool_threadReadDP(void * ddp) {
|
void __DevicePool_threadReadDP(void * ddp) {
|
||||||
PIConnection::DevicePool::DeviceData * dd((PIConnection::DevicePool::DeviceData * )ddp);
|
PIConnection::DevicePool::DeviceData * dd((PIConnection::DevicePool::DeviceData * )ddp);
|
||||||
if (dd->dev == 0) {piMSleep(100); return;}
|
if (dd->dev == 0) {piMSleep(100); return;}
|
||||||
|
if (dd->dev->isClosed())
|
||||||
|
if (!dd->dev->open()) {piMSleep(dd->dev->reopenTimeout()); return;}
|
||||||
PIByteArray ba;
|
PIByteArray ba;
|
||||||
ba = dd->dev->read(dd->dev->threadedReadBufferSize());
|
ba = dd->dev->read(dd->dev->threadedReadBufferSize());
|
||||||
// dd->dev->threadedRead(ba.data(), ba.size());
|
// dd->dev->threadedRead(ba.data(), ba.size());
|
||||||
|
|||||||
@@ -141,6 +141,7 @@ PIPeer::PIPeer(const PIString & n): PIIODevice(), diag_d(false), diag_s(false),
|
|||||||
PIMutexLocker pl(peers_mutex);
|
PIMutexLocker pl(peers_mutex);
|
||||||
PIMutexLocker sl(send_mutex);
|
PIMutexLocker sl(send_mutex);
|
||||||
changeName(n);
|
changeName(n);
|
||||||
|
setReopenTimeout(100);
|
||||||
read_buffer_size = 128;
|
read_buffer_size = 128;
|
||||||
self_info.dist = 0;
|
self_info.dist = 0;
|
||||||
self_info.time = PISystemTime::current();
|
self_info.time = PISystemTime::current();
|
||||||
@@ -191,6 +192,7 @@ void PIPeer::timerEvent(void * data, int delim) {
|
|||||||
syncPeers();
|
syncPeers();
|
||||||
piMSleep(100);
|
piMSleep(100);
|
||||||
pingNeighbours();
|
pingNeighbours();
|
||||||
|
//piCoutObj << "isOpened" << isOpened();
|
||||||
break;
|
break;
|
||||||
case 5: // every 5 s
|
case 5: // every 5 s
|
||||||
checkNetwork();
|
checkNetwork();
|
||||||
@@ -556,7 +558,8 @@ bool PIPeer::mbcastRead(uchar * data, int size) {
|
|||||||
pi.resetPing();
|
pi.resetPing();
|
||||||
addPeer(pi);
|
addPeer(pi);
|
||||||
buildMap();
|
buildMap();
|
||||||
//piCoutObj << "new peer \"" << pi.name << "\"" << " dist " << pi.dist;
|
// piCoutObj << "new peer \"" << pi.name << "\"" << " dist " << pi.dist;
|
||||||
|
// piCoutObj << mode() << opened_;
|
||||||
pi.dist++;
|
pi.dist++;
|
||||||
sendSelfInfo();
|
sendSelfInfo();
|
||||||
sendPeerInfo(pi);
|
sendPeerInfo(pi);
|
||||||
@@ -804,6 +807,7 @@ bool PIPeer::openDevice() {
|
|||||||
reinit();
|
reinit();
|
||||||
diag_d.reset();
|
diag_d.reset();
|
||||||
diag_s.reset();
|
diag_s.reset();
|
||||||
|
//piCoutObj << "open...";
|
||||||
PIMutexLocker ml(peers_mutex);
|
PIMutexLocker ml(peers_mutex);
|
||||||
if (trust_peer.isEmpty())
|
if (trust_peer.isEmpty())
|
||||||
return !peers.isEmpty();
|
return !peers.isEmpty();
|
||||||
@@ -898,7 +902,7 @@ void PIPeer::changeName(const PIString &new_name) {
|
|||||||
|
|
||||||
PIString PIPeer::constructFullPath() const {
|
PIString PIPeer::constructFullPath() const {
|
||||||
PIString ret(fullPathPrefix() + "://");
|
PIString ret(fullPathPrefix() + "://");
|
||||||
ret << name() << ":" << trustPeerName();
|
ret << self_info.name << ":" << trustPeerName();
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user