QGIS API Documentation 3.34.0-Prizren (ffbdd678812)
Loading...
Searching...
No Matches
qgsserviceregistry.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsserviceregistry.h
3
4 Class defining the service manager for QGIS server services.
5 -------------------
6 begin : 2016-12-05
7 copyright : (C) 2016 by David Marteau
8 email : david dot marteau at 3liz dot com
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#ifndef QGSSERVICEREGISTRY_H
20#define QGSSERVICEREGISTRY_H
21
22#include "qgsconfig.h"
23#include "qgis.h"
24
25#include <QHash>
26#include <QString>
27
29#include <memory>
30
31class QgsService;
33class QgsServerApi;
35
49class SERVER_EXPORT QgsServiceRegistry
50{
51
52 public:
53
55 QgsServiceRegistry() = default;
56
59
68 QgsService *getService( const QString &name, const QString &version = QString() );
69
80 void registerService( QgsService *service SIP_TRANSFER );
81
88 bool registerApi( QgsServerApi *api SIP_TRANSFER );
89
101 int unregisterApi( const QString &name, const QString &version = QString() );
102
107 QgsServerApi *apiForRequest( const QgsServerRequest &request ) const SIP_SKIP;
108
119 QgsServerApi *getApi( const QString &name, const QString &version = QString() );
120
131 int unregisterService( const QString &name, const QString &version = QString() );
132
138 void init( const QString &nativeModulepath, QgsServerInterface *serverIface = nullptr );
139
143 void cleanUp();
144
145 private:
146
147 // XXX consider using QMap because of the few numbers of
148 // elements to handle
149 typedef QHash<QString, std::shared_ptr<QgsService> > ServiceTable;
150 typedef QHash<QString, std::shared_ptr<QgsServerApi> > ApiTable;
151 typedef QHash<QString, QPair<QString, QString> > VersionTable;
152
153 QgsServiceNativeLoader mNativeLoader;
154
155 ServiceTable mServices;
156 VersionTable mServiceVersions;
157 ApiTable mApis;
158 VersionTable mApiVersions;
159
160};
161
162#endif
163
Server generic API endpoint abstract base class.
QgsServerInterface Class defining interfaces exposed by QGIS Server and made available to plugins.
QgsServerRequest Class defining request interface passed to services QgsService::executeRequest() met...
Class defining the native service module loader for QGIS server services.
QgsServiceRegistry Class defining the registry manager for QGIS server services.
QgsServiceRegistry()=default
Constructor.
QgsService Class defining interfaces for QGIS server services.
Definition qgsservice.h:40
#define SIP_SKIP
Definition qgis_sip.h:126
#define SIP_TRANSFER
Definition qgis_sip.h:36