QGIS API Documentation 3.37.0-Master (fdefdf9c27f)
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
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 = new QgsServerCacheManager( *settings );
33#endif
34}
35
36QString 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 delete mCacheManager;
47#endif
48}
49
50
52{
53 mRequestHandler = nullptr;
54}
55
57{
58 mRequestHandler = requestHandler;
59}
60
61void QgsServerInterfaceImpl::setConfigFilePath( const QString &configFilePath )
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;
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}
121
123{
124 mServerSettings->load();
125}
Class defining access control interface for QGIS Server plugins.
A helper class that centralizes restrictions given by all the access control filter plugins.
void registerAccessControl(QgsAccessControlFilter *accessControl, int priority=0)
Register an access control filter.
A cache for capabilities xml documents (by configuration file path)
void removeCapabilitiesDocument(const QString &path)
Remove capabilities document.
void removeEntry(const QString &path)
Removes an entry from cache.
static QgsConfigCache * instance()
Returns the current instance.
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 helper class that centralizes caches accesses given by all the server cache filter plugins.
void registerServerCache(QgsServerCacheFilter *serverCache, int priority=0)
Register a server cache filter.
Class defining I/O filters for QGIS Server and implemented in plugins.
void registerServerCache(QgsServerCacheFilter *serverCache, int priority=0) override
Registers a server cache filter.
QgsServerSettings * serverSettings() override
Returns the server settings.
void removeConfigCacheEntry(const QString &path) override
Remove entry from config cache.
QgsServerInterfaceImpl(QgsCapabilitiesCache *capCache, QgsServiceRegistry *srvRegistry, QgsServerSettings *serverSettings)
Constructor.
void reloadSettings() override
Reloads the server settings re-reading the configuration.
void setRequestHandler(QgsRequestHandler *requestHandler) override
Set the request handler.
QString getEnv(const QString &name) const override
Returns an enrironment variable, used to pass environment variables to Python.
QgsRequestHandler * requestHandler() override
Returns the QgsRequestHandler, to be used only in server plugins.
void clearRequestHandler() override
Clear the request handler.
QgsServerFiltersMap filters() override
Returns the list of current QgsServerFilter.
QgsServiceRegistry * serviceRegistry() override
Returns the service registry.
void registerAccessControl(QgsAccessControlFilter *accessControl, int priority=0) override
Register an access control filter.
QgsServerCacheManager * cacheManager() const override
Gets the helper over all the registered server cache filters.
void setFilters(QgsServerFiltersMap *filters) override
Set the filters map.
QString configFilePath() override
Returns the configuration file path.
void setConfigFilePath(const QString &configFilePath) override
Set the configuration file path.
void registerFilter(QgsServerFilter *filter, int priority=0) override
Register a QgsServerFilter.
Provides a way to retrieve settings by prioritizing according to environment variables,...
void load()
Load settings according to current environment variables.
QgsServiceRegistry Class defining the registry manager for QGIS server services.
QMultiMap< int, QgsServerFilter * > QgsServerFiltersMap