void HttpInterface::run() { do { sendAvailableResponses(); pingNetwork(); if (!run2s()) break; if (verbose && streamsToShutdown.size() > 0) { cerr << "HttpInterface::run "<< streamsToShutdown.size() <<" streams to shut down"; for (std::set<Dashel::Stream*>::iterator si = streamsToShutdown.begin(); si != streamsToShutdown.end(); si++) cerr << " " << *si; cerr << endl; } if (!streamsToShutdown.empty()) { std::set<Dashel::Stream*>::iterator i = streamsToShutdown.begin(); Dashel::Stream* stream_to_shutdown = *i; streamsToShutdown.erase(*i); // invalidates iterator try { if (verbose) cerr << stream_to_shutdown << " shutting down stream" << endl; shutdownStream(stream_to_shutdown); } catch(Dashel::DashelException& e) { } } } while (iterations-- != 0 and asebaStream != 0); for (StreamResponseQueueMap::iterator i = pendingResponses.begin(); i != pendingResponses.end(); i++) unscheduleAllResponses(i->first); }
void AsebaNetworkInterface::PingNetwork() { pingNetwork(); }