//Setup http
http
= new QHttp("iq.ul.com");
connect(http,SIGNAL(requestFinished(int,bool)),this,
SLOT(requestFinished(int,bool)));
connect(http,SIGNAL(done(bool)),this,SLOT(done(bool)));
connect(http,SIGNAL(responseHeaderReceived(const QHttpResponseHeader&)),
this,SLOT(responseHeaderReceived(const QHttpResponseHeader&)));
connect(http,SIGNAL(requestStarted(int)),this,SLOT(requestStarted(int)));
//Create QFile* and place in download queue, files
for(int i = min; i < max; ++i){
QString newPath
= "C:/Users/Desktop/UL/Update/Http/files/";
+ "-AWM-Fixed.rtf");
std::cout << "adding " << i << std::endl;
files.enqueue(temp);
}
}
void Http::downloadFiles(){
while(files.size()){
http->get("/stylepages/"+info.fileName(),files.front());
started.enqueue(files.dequeue());
}
}
void Http::requestFinished(int id, bool error){
if(http->lastResponse().statusCode() != 200 || error){
std::cout << id << " encountered an error:\n ";
std::cout << http->lastResponse().statusCode() << " " <<
http->lastResponse().reasonPhrase().toStdString() << "\n";
started.front()->remove();
delete started.dequeue();
}
else{
started.front()->close();
delete started.dequeue();
std::cout << "File closed. " << id << std::endl;
}
}
void Http::responseHeaderReceived(const QHttpResponseHeader& resp){
std::cout << resp.statusCode() << " " << resp.reasonPhrase().toStdString() << std::endl;
}
void Http::requestStarted(int id){
std::cout << id << " started\n";
}
void Http::done(bool error){
if (started.size() ==0){
emit done();
std::cout << "Files done\n";
return;
}
if (error){
std::cout << "Error in done()\n";
}
}
Http::Http(int min, int max, QObject* parent) : QObject(parent){
//Setup http
http = new QHttp("iq.ul.com");
connect(http,SIGNAL(requestFinished(int,bool)),this,
SLOT(requestFinished(int,bool)));
connect(http,SIGNAL(done(bool)),this,SLOT(done(bool)));
connect(http,SIGNAL(responseHeaderReceived(const QHttpResponseHeader&)),
this,SLOT(responseHeaderReceived(const QHttpResponseHeader&)));
connect(http,SIGNAL(requestStarted(int)),this,SLOT(requestStarted(int)));
//Create QFile* and place in download queue, files
for(int i = min; i < max; ++i){
QString newPath = "C:/Users/Desktop/UL/Update/Http/files/";
QFile* temp= new QFile(newPath +QString::number(i)
+ "-AWM-Fixed.rtf");
std::cout << "adding " << i << std::endl;
files.enqueue(temp);
}
}
void Http::downloadFiles(){
while(files.size()){
QFileInfo info(*files.front());
http->get("/stylepages/"+info.fileName(),files.front());
started.enqueue(files.dequeue());
}
}
void Http::requestFinished(int id, bool error){
if(http->lastResponse().statusCode() != 200 || error){
std::cout << id << " encountered an error:\n ";
std::cout << http->lastResponse().statusCode() << " " <<
http->lastResponse().reasonPhrase().toStdString() << "\n";
started.front()->remove();
delete started.dequeue();
}
else{
started.front()->close();
delete started.dequeue();
std::cout << "File closed. " << id << std::endl;
}
}
void Http::responseHeaderReceived(const QHttpResponseHeader& resp){
std::cout << resp.statusCode() << " " << resp.reasonPhrase().toStdString() << std::endl;
}
void Http::requestStarted(int id){
std::cout << id << " started\n";
}
void Http::done(bool error){
if (started.size() ==0){
emit done();
std::cout << "Files done\n";
return;
}
if (error){
std::cout << "Error in done()\n";
}
}
To copy to clipboard, switch view to plain text mode
Bookmarks