QFuture<void> run() { this->reportStarted(); QFuture<void> future = QFuture<void>(this); reportFinished(); return future; }
QFuture<int> run() { this->reportStarted(); QFuture<int> future = QFuture<int>(this); int res = 10; reportFinished(&res); return future; }
void ElisaServer::report(QString id) { //check if user is already logged if(m_nickname!=""){ QNetworkAccessManager *manager = new QNetworkAccessManager(this); //set urls QUrl url; url.setUrl("http://projectelisa.altervista.org/main/report/?target="+id); //bind network request QNetworkRequest request; request.setUrl(url); //define callback QNetworkReply * r; r = manager->get(request); connect(r,SIGNAL(finished()),this,SLOT(reportFinished())); } else { } }
void ServerSocket::service() { if (socket->bind(service_port) != sf::Socket::Status::Done) { std::cout << "!ServerSocket: Error opening socket at port " << service_port << std::endl; reportFinished(); return; } std::cout << "#ServerSocket: socket up at port " << service_port << std::endl; // Verify client knows we are here char buffer[1024]; std::size_t received_count = 0; int wait_duration = 100000; long wait_start = game.getGameRunningTime(); bool got_response = false; while ((game.getGameRunningTime() < wait_start + wait_duration) && !got_response) { if (socket->receive(buffer, sizeof(buffer), received_count, sender, senderPort) != sf::Socket::Done) { //std::cout << "no news" << std::endl; } else { std::cout << "#ServerSocket: Got handshake from client. Continuing to loop" << std::endl; got_response = true; } } if (!got_response) { std::cout << "!SocketThread: Didn't get response from client in time during initial handshake" << std::endl; reportFinished(); return; } while (!getFinished()) { // First check if the server has anything to send to the client if (game.getServer()->stateHasChanged()) { sendDeltas(); } // Then receive the client's information if (socket->receive(buffer, sizeof(buffer), received_count, sender, senderPort) != sf::Socket::Done) { } else { std::cout << "#ServerThread: Client told us: " << buffer <<" first char: " << buffer[0] << std::endl; if (buffer[0] == 'u') game.getNetworkedInput()->up(service_port); else if (buffer[0] == 'd') game.getNetworkedInput()->down(service_port); else if (buffer[0] == 'l') game.getNetworkedInput()->left(service_port); else if (buffer[0] == 'r') game.getNetworkedInput()->right(service_port); else if (buffer[0] == 'x') reportFinished(); } } std::cout << "#Server_thread: Exiting safely" << std::endl; }