QGIS API Documentation  3.8.0-Zanzibar (11aff65)
qgsserverinterface.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsserverinterface.h
3 
4  Class defining the interface made available to QGIS Server plugins.
5  -------------------
6  begin : 2014-09-10
7  copyright : (C) 2014 by Alessandro Pasotti
8  email : a dot pasotti at itopen dot it
9  ***************************************************************************/
10 
11 /***************************************************************************
12  * *
13  * This program is free software; you can redistribute it and/or modify *
14  * it under the terms of the GNU General Public License as published by *
15  * the Free Software Foundation; either version 2 of the License, or *
16  * (at your option) any later version. *
17  * *
18  ***************************************************************************/
19 
20 
21 #ifndef QGSSERVERINTERFACE_H
22 #define QGSSERVERINTERFACE_H
23 
24 #include "qgsconfig.h"
25 #include "qgis_sip.h"
26 #include "qgscapabilitiescache.h"
27 #include "qgsrequesthandler.h"
28 #include "qgsserverfilter.h"
29 #include "qgsserversettings.h"
30 #ifdef HAVE_SERVER_PYTHON_PLUGINS
31 #include "qgsaccesscontrolfilter.h"
32 #include "qgsaccesscontrol.h"
33 #include "qgsservercachefilter.h"
34 #include "qgsservercachemanager.h"
35 #else
36 class QgsAccessControl;
40 #endif
41 #include "qgsserviceregistry.h"
42 #include "qgis_server.h"
43 
44 SIP_IF_MODULE( HAVE_SERVER_PYTHON_PLUGINS )
45 
46 
47 
60 class SERVER_EXPORT QgsServerInterface
61 {
62  public:
63 
65  QgsServerInterface() SIP_SKIP;
66 
67  virtual ~QgsServerInterface() = default;
68 
74  virtual void setRequestHandler( QgsRequestHandler *requestHandler ) = 0 SIP_SKIP;
75 
81  virtual void clearRequestHandler() = 0 SIP_SKIP;
82 
87  virtual QgsCapabilitiesCache *capabilitiesCache() = 0 SIP_KEEPREFERENCE;
88 
93  virtual QgsRequestHandler *requestHandler() = 0 SIP_KEEPREFERENCE;
94 
100  virtual void registerFilter( QgsServerFilter *filter SIP_TRANSFER, int priority = 0 ) = 0;
101 
106  virtual void setFilters( QgsServerFiltersMap *filters SIP_TRANSFER ) = 0;
107 
112  virtual QgsServerFiltersMap filters() = 0;
113 
119  virtual void registerAccessControl( QgsAccessControlFilter *accessControl SIP_TRANSFER, int priority = 0 ) = 0;
120 
122  virtual QgsAccessControl *accessControls() const = 0;
123 
130  virtual void registerServerCache( QgsServerCacheFilter *serverCache SIP_TRANSFER, int priority = 0 ) = 0;
131 
136  virtual QgsServerCacheManager *cacheManager() const = 0;
137 
139  virtual QString getEnv( const QString &name ) const = 0;
140 
145  virtual QString configFilePath() = 0;
146 
151  virtual void setConfigFilePath( const QString &configFilePath ) = 0;
152 
157  virtual void removeConfigCacheEntry( const QString &path ) = 0;
158 
163  virtual QgsServiceRegistry *serviceRegistry() = 0 SIP_KEEPREFERENCE;
164 
171  virtual QgsServerSettings *serverSettings() = 0 SIP_SKIP;
172 
173  private:
174 #ifdef SIP_RUN
175  QgsServerInterface();
176 #endif
177 
178  QString mConfigFilePath;
179 };
180 
181 #endif // QGSSERVERINTERFACE_H
Provides a way to retrieve settings by prioritizing according to environment variables, ini file and default values.
#define SIP_IF_MODULE(condition)
Definition: qgis_sip.h:28
Class defining I/O filters for QGIS Server and implemented in plugins.
Class defining access control interface for QGIS Server plugins.
#define SIP_SKIP
Definition: qgis_sip.h:119
QMultiMap< int, QgsServerFilter * > QgsServerFiltersMap
#define SIP_TRANSFER
Definition: qgis_sip.h:36
A helper class that centralizes caches accesses given by all the server cache filter plugins...
#define SIP_KEEPREFERENCE
Definition: qgis_sip.h:79
This class is an interface hiding the details of reading input and writing output from/to a wms reque...
Class defining cache interface for QGIS Server plugins.
A cache for capabilities xml documents (by configuration file path)
QgsServerInterface Class defining interfaces exposed by QGIS Server and made available to plugins...
QgsServiceRegistry Class defining the registry manager for QGIS server services.
A helper class that centralizes restrictions given by all the access control filter plugins...