#include "yacreader_http_session_store.h" #include "yacreader_http_session.h" #include "httpsessionstore.h" YACReaderHttpSessionStore::YACReaderHttpSessionStore(HttpSessionStore *sessionStore, QObject *parent) : QObject(parent), sessionStore(sessionStore) { connect(&cleanupTimer,SIGNAL(timeout()),this,SLOT(sessionTimerEvent())); cleanupTimer.start(60000); } void YACReaderHttpSessionStore::addYACReaderHttpSession(const QByteArray &httpSessionId, YACReaderHttpSession *yacreaderHttpSession) { QMutexLocker locker(&mutex); sessions.insert(httpSessionId, yacreaderHttpSession); } YACReaderHttpSession *YACReaderHttpSessionStore::getYACReaderSessionHttpSession(const QByteArray &httpSessionId) { QMutexLocker locker(&mutex); return sessions.value(httpSessionId, nullptr); } void YACReaderHttpSessionStore::sessionTimerEvent() { QMutexLocker locker(&mutex); for(const QByteArray &id : sessions.keys()) { if(sessionStore->getSession(id).isNull()) { YACReaderHttpSession *session = sessions.value(id, nullptr); if(session != nullptr) delete session; sessions.remove(id); } } }