void HttpClient::onReadyRead() { switch( httpState ) { case Sending: #ifdef HTTP_CLIENT_DEBUG qDebug() << this << "onReadyRead(), Sending"; #endif httpState = ReadingResponseHeader; case ReadingResponseHeader: #ifdef HTTP_CLIENT_DEBUG qDebug() << this << "onReadyRead(), ReadingResponseHeader"; #endif // если не дочитан if( !readResponseHeader() ) break; if( responseHeader.statusCode() == 100 ) { // Continue // это нам говорят продолжай слать пост, игнорируем, // опять будем читать хидер break; } else if ( responseHeader.statusCode() == 302 ) { // Moved temporary if ( responseHeader.hasKey( "Location" ) ) { QString location = responseHeader.value( "Location" ); if ( location.at( 0 ) == '/' ) url.setPath( location ); else url.setUrl( location ); method = GET; } break; } httpState = ReadingResponseBody; case ReadingResponseBody: #ifdef HTTP_CLIENT_DEBUG qDebug() << this << "onReadyRead(), ReadingResponseBody"; #endif // если не дочитан if( !readResponseBody() ) break; emitDone(); break; default: qCritical() << this << "onReadyRead(): unknown httpState"; qFatal( "programming error" ); } }
int SnapTool::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QObject::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: done(); break; case 1: snapAndSend(); break; case 2: emitDone(); break; default: ; } _id -= 3; } return _id; }