QGIS API Documentation  3.26.3-Buenos Aires (65e4edfdad)
qgsserver.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsserver.h
3  QGIS Server main class.
4  -------------------
5  begin : June 05, 2015
6  copyright : (C) 2015 by Alessandro Pasotti
7  email : a dot pasotti at itopen dot it
8 
9  Based on previous work from:
10 
11  begin : July 04, 2006
12  copyright : (C) 2006 by Marco Hugentobler & Ionut Iosifescu Enescu
13  email : marco dot hugentobler at karto dot baug dot ethz dot ch
14 
15  ***************************************************************************/
16 
17 /***************************************************************************
18  * *
19  * This program is free software; you can redistribute it and/or modify *
20  * it under the terms of the GNU General Public License as published by *
21  * the Free Software Foundation; either version 2 of the License, or *
22  * (at your option) any later version. *
23  * *
24  ***************************************************************************/
25 
26 
27 #ifndef QGSSERVER_H
28 #define QGSSERVER_H
29 
30 #include <QFileInfo>
31 #include "qgsrequesthandler.h"
32 #include "qgsconfigcache.h"
33 #include "qgscapabilitiescache.h"
34 #include "qgsserviceregistry.h"
35 #include "qgsserversettings.h"
36 #include "qgsserverplugins.h"
37 #include "qgsserverinterfaceimpl.h"
38 #include "qgis_server.h"
39 #include "qgsserverrequest.h"
40 
41 class QgsServerResponse;
42 class QgsProject;
43 
48 class SERVER_EXPORT QgsServer
49 {
50  public:
51 
55  QgsServer();
56 
63  void putenv( const QString &var, const QString &val );
64 
77  void handleRequest( QgsServerRequest &request, QgsServerResponse &response, const QgsProject *project = nullptr );
78 
79 
82 
83 #ifdef HAVE_SERVER_PYTHON_PLUGINS
84 
89  void initPython();
90 #endif
91 
92  private:
93 #ifdef SIP_RUN
94  QgsServer( const QgsServer & );
95  QgsServer &operator=( const QgsServer & );
96 #endif
97 
99  static bool init();
100 
104  static QString configPath( const QString &defaultConfigPath,
105  const QString &configPath );
106 
112  static void printRequestParameters(
113  const QMap< QString, QString> &parameterMap,
114  Qgis::MessageLevel logLevel );
115 
119  static QFileInfo defaultProjectFile();
120  static QFileInfo defaultAdminSLD();
121 
125  static void setupNetworkAccessManager();
126 
127  // Status
128  static QString *sConfigFilePath;
129  static QgsCapabilitiesCache *sCapabilitiesCache;
130  static QgsServerInterfaceImpl *sServerInterface;
132  static bool sInitialized;
133 
135  static QgsServiceRegistry *sServiceRegistry;
136 
138  QgsConfigCache *mConfigCache = nullptr;
139 
141  static void initLocale();
142 };
143 #endif // QGSSERVER_H
qgsserversettings.h
QgsCapabilitiesCache
A cache for capabilities xml documents (by configuration file path)
Definition: qgscapabilitiescache.h:34
QgsConfigCache
Cache for server configuration.
Definition: qgsconfigcache.h:77
qgsconfigcache.h
QgsServerRequest
QgsServerRequest Class defining request interface passed to services QgsService::executeRequest() met...
Definition: qgsserverrequest.h:38
qgsserviceregistry.h
QgsServerInterfaceImpl
Interfaces exposed by QGIS Server and made available to plugins.
Definition: qgsserverinterfaceimpl.h:35
QgsProject
Encapsulates a QGIS project, including sets of map layers and their styles, layouts,...
Definition: qgsproject.h:103
qgsserverinterfaceimpl.h
qgscapabilitiescache.h
qgsserverrequest.h
qgsserverplugins.h
QgsServer::serverInterface
QgsServerInterfaceImpl * serverInterface()
Returns a pointer to the server interface.
Definition: qgsserver.h:81
QgsServer
The QgsServer class provides OGC web services.
Definition: qgsserver.h:48
Qgis::MessageLevel
MessageLevel
Level for messages This will be used both for message log and message bar in application.
Definition: qgis.h:114
QgsServiceRegistry
QgsServiceRegistry Class defining the registry manager for QGIS server services.
Definition: qgsserviceregistry.h:49
qgsrequesthandler.h
SIP_PYALTERNATIVETYPE
#define SIP_PYALTERNATIVETYPE(type)
Definition: qgis_sip.h:141
QgsServerInterface
QgsServerInterface Class defining interfaces exposed by QGIS Server and made available to plugins.
Definition: qgsserverinterface.h:60
QgsServerResponse
QgsServerResponse Class defining response interface passed to services QgsService::executeRequest() m...
Definition: qgsserverresponse.h:43