Exemple #1
0
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)));
}
Exemple #2
0
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" );
      }
}
Exemple #3
0
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()));
}
Exemple #5
0
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();
}
Exemple #6
0
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()));
}
Exemple #9
0
	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);
		}
	}