8#include "httpsessionstore.h"
15#include <QJsonDocument>
23SessionStore::SessionStore(
const HobrasoftHttpd::HttpSettings *settings, QObject *parent) :
24 HobrasoftHttpd::HttpSessionStore(settings, parent) {
25 m_sessionStore =
this;
28 QTimer *timer =
new QTimer(
this);
29 timer->setInterval(60000);
35SessionStore::~SessionStore() {
41 if (m_sessionStore == NULL) {
44 return m_sessionStore;
48 QFile file(MSETTINGS->httpdSessionsFile());
49 if (!file.open(QIODevice::ReadOnly)) {
return; }
50 QByteArray json = file.readAll();
53 QVariantList list = data.toList();
54 for (
const QVariant& v : list) {
55 QVariantMap map = v.toMap();
56 HobrasoftHttpd::HttpSessionData d;
57 d.id = map.value(
"id").toByteArray();
58 d.lastAccess = QDateTime::fromString(map.value(
"lastAccess").toString(), Qt::ISODate);
59 QVariantHash values = map.value(
"values").toHash();
60 QHash<QString, QVariant> hash;
61 for (
auto it = values.constBegin(); it != values.constEnd(); ++it) {
62 hash.insert(it.key(), it.value());
71 QList<HobrasoftHttpd::HttpSessionData> sessions = sessionsData();
72 for (
const HobrasoftHttpd::HttpSessionData& d : sessions) {
75 map[
"lastAccess"] = d.lastAccess.toString(Qt::ISODate);
77 QHashIterator<QString, QVariant> it(d.values);
78 while (it.hasNext()) {
80 values.insert(it.key(), it.value());
82 map[
"values"] = values;
85 QFile file(MSETTINGS->httpdSessionsFile());
86 if (!file.open(QIODevice::WriteOnly | QIODevice::Truncate)) {
return; }
Seesion store - zajišťuje singleton instanci třídy.
void load()
Loads sessions from the file configured in httpd/sessions-file.
static SessionStore * sessionStore(const HobrasoftHttpd::HttpSettings *settings=NULL, QObject *parent=NULL)
Vrací ukazatel na singleton instanci třídy.
void save()
Saves sessions to the file configured in httpd/sessions-file.
static QVariant data(const QByteArray &json)
Converts json to data.
static QByteArray json(const QVariant &data)
Converts data to json.
Jmenný prostor pro obsluhu konkrétních HTTP požadavků aplikace.