QGIS API Documentation 3.28.0-Firenze (ed3ad0430f)
qgscapabilitiescache.h
Go to the documentation of this file.
1/***************************************************************************
2 qgscapabilitiescache.h
3 ----------------------
4 begin : May 11th, 2011
5 copyright : (C) 2011 by Marco Hugentobler
6 email : marco dot hugentobler at sourcepole dot ch
7 ***************************************************************************/
8
9/***************************************************************************
10 * *
11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. *
15 * *
16 ***************************************************************************/
17
18#ifndef QGSCAPABILITIESCACHE_H
19#define QGSCAPABILITIESCACHE_H
20
21#include <QDomDocument>
22#include <QFileSystemWatcher>
23#include <QHash>
24#include <QObject>
25#include <QDateTime>
26#include <QTimer>
27
28#include "qgis_server.h"
29
34class SERVER_EXPORT QgsCapabilitiesCache : public QObject
35{
36 Q_OBJECT
37 public:
39
45 const QDomDocument *searchCapabilitiesDocument( const QString &configFilePath, const QString &key );
46
53 void insertCapabilitiesDocument( const QString &configFilePath, const QString &key, const QDomDocument *doc );
54
60 void removeCapabilitiesDocument( const QString &path );
61
62 private:
63 QHash< QString, QHash< QString, QDomDocument > > mCachedCapabilities;
64 QHash< QString, QDateTime> mCachedCapabilitiesTimestamps;
65 QFileSystemWatcher mFileSystemWatcher;
66 QTimer mTimer;
67
68 private slots:
70 void removeChangedEntry( const QString &path );
72 void removeOutdatedEntries();
73};
74
75#endif // QGSCAPABILITIESCACHE_H
A cache for capabilities xml documents (by configuration file path)