QGIS API Documentation  3.23.0-Master (eb871beae0)
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 
34 class 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)