diff --git a/src/HTTPRequestQueue.cpp b/src/HTTPRequestQueue.cpp index f886525eb344e49434e70376e7c54c1e8ca49388..2484e311d05d259d09c7c7724caf0b6627c04a01 100644 --- a/src/HTTPRequestQueue.cpp +++ b/src/HTTPRequestQueue.cpp @@ -1,22 +1,31 @@ #include "transport/HTTPRequestQueue.h" #include "transport/HTTPRequest.h" +#include "transport/Transport.h" namespace Transport { DEFINE_LOGGER(logger, "HTTPRequestQueue") -HTTPRequestQueue::HTTPRequestQueue(int delay) { +HTTPRequestQueue::HTTPRequestQueue(Component *component, int delay) { m_delay = delay; m_processing = false; + + m_queueTimer = component->getNetworkFactories()->getTimerFactory()->createTimer(500); + m_queueTimer->onTick.connect(boost::bind(&HTTPRequestQueue::sendNextRequest, this)); } HTTPRequestQueue::~HTTPRequestQueue() { - + m_queueTimer->stop(); +} + +void HTTPRequestQueue::handleRequestFinished() { + m_queueTimer->start(); } void HTTPRequestQueue::sendNextRequest() { if (m_queue.empty()) { m_processing = false; + m_queueTimer->stop(); return; } @@ -26,7 +35,7 @@ void HTTPRequestQueue::sendNextRequest() { HTTPRequest *req = m_queue.front(); m_queue.pop(); - req->onRequestFinished.connect(boost::bind(&HTTPRequestQueue::sendNextRequest, this)); + req->onRequestFinished.connect(boost::bind(&HTTPRequestQueue::handleRequestFinished, this)); req->execute(); }