void TeamWorkApi::RequestFinished(){ QIODevice::OpenMode eOpen = pobjReply->openMode(); bMultiPage = false; int iStatusCode = pobjReply->attribute( QNetworkRequest::HttpStatusCodeAttribute ).toInt(); bool bPages = false; if( pobjReply->hasRawHeader( "X-Pages" ) ) bPages = true; int iPages = 1; int iPage = 1; if( bPages ){ iPages = pobjReply->rawHeader( "X-Pages" ).toInt(); iPage = pobjReply->rawHeader( "X-Page" ).toInt(); if( iPage < iPages ) bMultiPage = true; } int iRemaining = 100; if( pobjReply->hasRawHeader( "X-RateLimit-Remaining" ) ) iRemaining = pobjReply->rawHeader( "X-RateLimit-Remaining" ).toInt(); emit TwpmRateLimit( iRemaining ); if( 15 > iRemaining ) emit ClosingToRateLimit( iRemaining ); pobjReply->deleteLater(); if( QIODevice::NotOpen == eOpen ) return; switch( typeCurrentRequest ){ case TypeOfRequest::TmpmGetProjects: ParseProjects(); break; case TypeOfRequest::TmpmGetTaskLists: ParseTasks( iPage + 1 ); break; case TypeOfRequest::TmpmGetCurrentUser: ParseUser(); break; case TypeOfRequest::TmpmPostTime: ParsePostedTime( iStatusCode ); break; } emit TwpmRequestFinished(); }
/** ** ParseBuffer: Handler client/server interaction. ** ** @param session Current session. */ static void ParseBuffer(Session *session) { char *buf; if (!session || session->Buffer[0] == '\0') { return; } buf = session->Buffer; if (!session->UserData.LoggedIn) { if (!strncmp(buf, "USER ", 5)) { ParseUser(session, buf + 5); } else if (!strncmp(buf, "REGISTER ", 9)) { ParseRegister(session, buf + 9); } else { fprintf(stderr, "Unknown command: %s\n", session->Buffer); Send(session, "ERR_BADCOMMAND\n"); } } else { if (!strncmp(buf, "USER ", 5) || !strncmp(buf, "REGISTER ", 9)) { Send(session, "ERR_ALREADYLOGGEDIN\n"); } else if (!strncmp(buf, "CREATEGAME ", 11)) { ParseCreateGame(session, buf + 11); } else if (!strcmp(buf, "CANCELGAME") || !strncmp(buf, "CANCELGAME ", 11)) { ParseCancelGame(session, buf + 10); } else if (!strcmp(buf, "STARTGAME") || !strncmp(buf, "STARTGAME ", 10)) { ParseStartGame(session, buf + 9); } else if (!strcmp(buf, "LISTGAMES") || !strncmp(buf, "LISTGAMES ", 10)) { ParseListGames(session, buf + 9); } else if (!strncmp(buf, "JOINGAME ", 9)) { ParseJoinGame(session, buf + 9); } else if (!strcmp(buf, "PARTGAME") || !strncmp(buf, "PARTGAME ", 9)) { ParsePartGame(session, buf + 8); } else if (!strncmp(buf, "ENDGAME ", 8)) { ParseEndGame(session, buf + 8); } else if (!strncmp(buf, "MSG ", 4)) { ParseMsg(session, buf + 4); } else { fprintf(stderr, "Unknown command: %s\n", session->Buffer); Send(session, "ERR_BADCOMMAND\n"); } } }