void BridgeServer::onNewConnection() { QLocalSocket *pSocket = m_pLocalServer->nextPendingConnection(); delete m_pBridgeCommunicator; m_pBridgeCommunicator = new BridgeCommunicator(pSocket, this); connect(m_pBridgeCommunicator, SIGNAL(requestReceived(QVariant)), this, SIGNAL(requestReceived(QVariant))); connect(m_pBridgeCommunicator, SIGNAL(responseReceived(QVariant)), this, SIGNAL(responseReceived(QVariant))); }
void HttpServer::slotReadyRead() { #ifdef DEBUG_XMLRPC qDebug() << this << "slotReadyRead():" << socket->bytesAvailable() << "bytes available"; #endif if( !socket->bytesAvailable() ) return; switch( state ) { case ReadingHeader: // если заголовок прочитан if( readRequestHeader() ) { // если судя по заголовку есть тело, меняем статус на чтение тела // и попадаем в следующий case if( requestContainsBody() ) state = ReadingBody; } else { // тела нет, бросаем сигнал, что заголовок получен Q_ASSERT( !socket->bytesAvailable() ); state = WaitingReply; #ifdef DEBUG_XMLRPC qDebug() << this << "slotReadyRead(): emit requestReceived()"; #endif emit requestReceived( this, requestHeader, requestBody ); break; } case ReadingBody: if( readRequestBody() ) { // тело прочитано, бросаем сигнал, что запрос получен Q_ASSERT( !socket->bytesAvailable() ); state = WaitingReply; #ifdef DEBUG_XMLRPC qDebug() << this << "slotReadyRead(): emit requestReceived()"; #endif emit requestReceived( this, requestHeader, requestBody ); } break; case WaitingReply: qCritical() << this << "slotReadyRead(): got data in WaitingReply state, emit parseError()"; emit parseError( this ); break; case SendingReply: qCritical() << this << "slotReadyRead(): got data in SendingHeader state, emit parseError()"; emit parseError( this ); break; case Done: qCritical() << this << "slotReadyRead(): got data in Done state, emit parseError()"; emit parseError( this ); break; default: qCritical() << this << "slotReadyRead(): unknown state"; qFatal( "programming error" ); } }
void Server::processRequest(const QList<QByteArray> &request) { static quint64 counter = 0; counter++; // qDebug() << "Replier::requestReceived> " << counter << request; QJsonDocument doc = QJsonDocument::fromJson(request[0]); emit requestReceived(doc.toVariant()); }
// Request methods void CommunicationDescriptionGateway::setupRequestConnections() { // this->disconnect(); connect(networkRequest, SIGNAL(responseDownloaded(QByteArray)), this, SLOT(requestReceived(QByteArray))); connect(networkRequest, SIGNAL(finished()), this, SLOT(requestFinished())); connect(networkRequest, SIGNAL(authenticationChallenge()), this, SLOT(authenticationChallenge())); // failed connections connect(networkRequest, SIGNAL(failedToSendRequest()), this, SLOT(requestFailed())); connect(networkRequest, SIGNAL(noNetworkConnection()), this, SLOT(requestFailed())); connect(networkRequest, SIGNAL(requestTimedOut()), this, SLOT(requestFailed())); }
void UserSurvey::on_buttonBox_accepted() { // now we need to collect the data and submit it QString values = os; ADD_OPTION(recreational); ADD_OPTION(tech); ADD_OPTION(planning); ADD_OPTION(download); ADD_OPTION(divecomputer); ADD_OPTION(manual); ADD_OPTION(companion); values.append(QString("&suggestion=%1").arg(ui->suggestions->toPlainText())); UserSurveyServices uss(this); connect(uss.sendSurvey(values), SIGNAL(finished()), SLOT(requestReceived())); hide(); }
int RadioInfoForm::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QMainWindow::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: onSave(); break; case 1: onRefresh(); break; case 2: requestReceived((*reinterpret_cast< QNetworkReply*(*)>(_a[1]))); break; default: ; } _id -= 3; } return _id; }
void UpdateManager::checkForUpdates(bool automatic) { QString os; #if defined(Q_OS_WIN) os = "win"; #elif defined(Q_OS_MAC) os = "osx"; #elif defined(Q_OS_LINUX) os = "linux"; #else os = "unknown"; #endif isAutomaticCheck = automatic; QString version = subsurface_canonical_version(); QString uuidString = getUUID(); QString url = QString("http://subsurface-divelog.org/updatecheck.html?os=%1&version=%2&uuid=%3").arg(os, version, uuidString); QNetworkRequest request; request.setUrl(url); request.setRawHeader("Accept", "text/xml"); QString userAgent = getUserAgent(); request.setRawHeader("User-Agent", userAgent.toUtf8()); connect(manager()->get(request), SIGNAL(finished()), this, SLOT(requestReceived()), Qt::UniqueConnection); }
void UpdateManager::checkForUpdates() { QString os; #if defined(Q_OS_WIN) os = "win"; #elif defined(Q_OS_MAC) os = "osx"; #elif defined(Q_OS_LINUX) os = "linux"; #else os = "unknown"; #endif QString version = VERSION_STRING; QString url = QString("http://subsurface-divelog.org/updatecheck.html?os=%1&ver=%2").arg(os, version); QNetworkRequest request; request.setUrl(url); request.setRawHeader("Accept", "text/xml"); QString userAgent = UserSurvey::getUserAgent(); request.setRawHeader("User-Agent", userAgent.toUtf8()); connect(SubsurfaceWebServices::manager()->get(request), SIGNAL(finished()), this, SLOT(requestReceived())); }
void JsonRpc::processJson(const QString& json) { QList<QVariantMap> objects; try { objects = JsonToVariant::multiParse(json); } catch(ParseException) { sendError(QVariant(), InvalidJson, "Parse error."); return; } Q_FOREACH(const QVariantMap& object, objects) { if(object.value("jsonrpc").toString() != "2.0") { sendError(object.value("id"), InvalidJsonRpc, "JSON-RPC version not specified or not supported.", object); continue; } // Notification or request if(object.contains("method")) { if(object.value("method").type() != QVariant::String) { sendError(object.value("id"), InvalidJsonRpc, "'method' member of request must be a string.", object); continue; } QString method = object.value("method").toString(); QVariant parameters = object.value("params"); if(parameters.isNull()) parameters = QVariantList(); if(parameters.type() != QVariant::List && parameters.type() != QVariant::Map) { sendError(object.value("id"), InvalidJsonRpc, "'parameters' member of request must be omitted, a list, or an object.", object); continue; } // Request or notification if(object.contains("id")) { emit requestReceived(object.value("id"), method, parameters); } else { emit notificationReceived(method, parameters); } continue; } // Request successful if(object.contains("result")) { if(!object.contains("id")) { sendError(QVariant(), InvalidJsonRpc, "ID not specified in response.", object); continue; } emit responseReceived(object.value("id"), object.value("result")); continue; } // Request failed if(object.contains("error")) { if(!object.contains("id")) { sendError(QVariant(), InvalidJsonRpc, "ID not specified in response.", object); continue; } if(object.value("error").type() != QVariant::Map) { sendError(object.value("id"), InvalidJsonRpc, "'error' member is not an Error object.", object); continue; } QVariantMap error = object.value("error").toMap(); if(error.value("code").type() != QVariant::Int) { sendError(object.value("id"), InvalidJsonRpc, "'code' member of error object is not an integer.", object); continue; } if(error.value("message").type() != QVariant::String) { sendError(object.value("id"), InvalidJsonRpc, "'message' member of error object is not a string.", object); continue; } emit errorReceived(object.value("id"), error.value("code").toInt(), error.value("message").toString(), error.value("data")); continue; } // Not a notification, request, or response sendError(object.value("id"), InvalidJsonRpc, "JSON object doesn't appear to be a JSON-RPC request, notification, or response.", object); } }