QGIS API Documentation 3.37.0-Master (fdefdf9c27f)
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#include "qgsserversettings.h"
30
35class SERVER_EXPORT QgsCapabilitiesCache : public QObject
36{
37 Q_OBJECT
38 public:
39 QgsCapabilitiesCache( int size );
40
46 const QDomDocument *searchCapabilitiesDocument( const QString &configFilePath, const QString &key );
47
54 void insertCapabilitiesDocument( const QString &configFilePath, const QString &key, const QDomDocument *doc );
55
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 int mCacheSize;
68
69 private slots:
71 void removeChangedEntry( const QString &path );
73 void removeOutdatedEntries();
74};
75
76#endif // QGSCAPABILITIESCACHE_H
A cache for capabilities xml documents (by configuration file path)