QGIS API Documentation  3.6.0-Noosa (5873452)
qgsserverinterfaceimpl.cpp
Go to the documentation of this file.
1 /***************************************************************************
2  qgsseerversinterface.h
3  Interface class for exposing functions in QGIS Server for use by plugins
4  -------------------
5  begin : 2014-09-10
6  copyright : (C) 2014 by Alessandro Pasotti
7  email : a dot pasotti at itopen dot it
8  ***************************************************************************/
9 
10 /***************************************************************************
11  * *
12  * This program is free software; you can redistribute it and/or modify *
13  * it under the terms of the GNU General Public License as published by *
14  * the Free Software Foundation; either version 2 of the License, or *
15  * (at your option) any later version. *
16  * *
17  ***************************************************************************/
18 
19 
20 #include "qgsserverinterfaceimpl.h"
21 #include "qgsconfigcache.h"
22 
25  : mCapabilitiesCache( capCache )
26  , mServiceRegistry( srvRegistry )
27  , mServerSettings( settings )
28 {
29  mRequestHandler = nullptr;
30 #ifdef HAVE_SERVER_PYTHON_PLUGINS
31  mAccessControls = new QgsAccessControl();
32  mCacheManager.reset( new QgsServerCacheManager() );
33 #endif
34 }
35 
36 QString QgsServerInterfaceImpl::getEnv( const QString &name ) const
37 {
38  return getenv( name.toLocal8Bit() );
39 }
40 
41 
43 {
44 #ifdef HAVE_SERVER_PYTHON_PLUGINS
45  delete mAccessControls;
46  mCacheManager.reset();
47 #endif
48 }
49 
50 
52 {
53  mRequestHandler = nullptr;
54 }
55 
57 {
58  mRequestHandler = requestHandler;
59 }
60 
62 {
63  mConfigFilePath = configFilePath;
64 }
65 
67 {
68  mFilters.insert( priority, filter );
69 }
70 
72 {
73  mFilters = *filters;
74 }
75 
78 {
79 #ifdef HAVE_SERVER_PYTHON_PLUGINS
80  mAccessControls->registerAccessControl( accessControl, priority );
81 #else
82  Q_UNUSED( accessControl );
83  Q_UNUSED( priority );
84 #endif
85 }
86 
89 {
90 #ifdef HAVE_SERVER_PYTHON_PLUGINS
91  mCacheManager->registerServerCache( serverCache, priority );
92 #else
93  Q_UNUSED( serverCache );
94  Q_UNUSED( priority );
95 #endif
96 }
97 
99 {
100  return mCacheManager.get();
101 }
102 
104 {
105  if ( mCapabilitiesCache )
106  {
107  mCapabilitiesCache->removeCapabilitiesDocument( path );
108  }
110 }
111 
113 {
114  return mServiceRegistry;
115 }
116 
118 {
119  return mServerSettings;
120 }
QgsServiceRegistry * serviceRegistry() override
Returns the service registry.
void setConfigFilePath(const QString &configFilePath) override
Set the configuration file path.
QString configFilePath() override
Returns the configuration file path.
Provides a way to retrieve settings by prioritizing according to environment variables, ini file and default values.
void registerFilter(QgsServerFilter *filter, int priority=0) override
Register a QgsServerFilter.
Class defining I/O filters for QGIS Server and implemented in plugins.
QgsServerSettings * serverSettings() override
Returns the server settings.
Class defining access control interface for QGIS Server plugins.
void removeEntry(const QString &path)
Removes an entry from cache.
QgsServerCacheManager * cacheManager() const override
Gets the helper over all the registered server cache filters.
QMultiMap< int, QgsServerFilter * > QgsServerFiltersMap
A helper class that centralizes caches accesses given by all the server cache filter plugins...
QgsServerFiltersMap filters() override
Returns the list of current QgsServerFilter.
void setFilters(QgsServerFiltersMap *filters) override
Set the filters map.
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.
QgsServerInterfaceImpl(QgsCapabilitiesCache *capCache, QgsServiceRegistry *srvRegistry, QgsServerSettings *serverSettings)
Constructor.
void registerAccessControl(QgsAccessControlFilter *accessControl, int priority=0) override
Register an access control filter.
void removeConfigCacheEntry(const QString &path) override
Remove entry from config cache.
A cache for capabilities xml documents (by configuration file path)
QgsServiceRegistry Class defining the registry manager for QGIS server services.
void registerServerCache(QgsServerCacheFilter *serverCache, int priority=0) override
Registers a server cache filter.
QString getEnv(const QString &name) const override
Returns an enrironment variable, used to pass environment variables to Python.
A helper class that centralizes restrictions given by all the access control filter plugins...
void clearRequestHandler() override
Clear the request handler.
void registerAccessControl(QgsAccessControlFilter *accessControl, int priority=0)
Register an access control filter.
static QgsConfigCache * instance()
Returns the current instance.
void removeCapabilitiesDocument(const QString &path)
Remove capabilities document.
void setRequestHandler(QgsRequestHandler *requestHandler) override
Set the request handler.
QgsRequestHandler * requestHandler() override
Returns the QgsRequestHandler, to be used only in server plugins.