QGIS API Documentation
4.3.0-Master (0ad0cdb9438)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
server
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
24
#include <memory>
25
26
#include "
qgis.h
"
27
#include "
qgsservicenativeloader.h
"
28
29
#include <QHash>
30
#include <QString>
31
32
class
QgsService
;
33
class
QgsServerRequest
;
34
class
QgsServerApi
;
35
class
QgsServerInterface
;
36
48
class
SERVER_EXPORT
QgsServiceRegistry
49
{
50
public
:
51
QgsServiceRegistry
() =
default
;
52
~QgsServiceRegistry
();
53
62
QgsService
*
getService
(
const
QString &name,
const
QString &version = QString() );
63
74
void
registerService
(
QgsService
*service
SIP_TRANSFER
);
75
82
bool
registerApi
(
QgsServerApi
*api
SIP_TRANSFER
);
83
95
int
unregisterApi
(
const
QString &name,
const
QString &version = QString() );
96
101
QgsServerApi
*
apiForRequest
(
const
QgsServerRequest
&request )
const
SIP_SKIP
;
102
113
QgsServerApi
*
getApi
(
const
QString &name,
const
QString &version = QString() );
114
125
int
unregisterService
(
const
QString &name,
const
QString &version = QString() );
126
132
void
init
(
const
QString &nativeModulepath,
QgsServerInterface
*serverIface =
nullptr
);
133
137
void
cleanUp
();
138
139
private
:
140
// XXX consider using QMap because of the few numbers of
141
// elements to handle
142
typedef
QHash<QString, std::shared_ptr<QgsService>> ServiceTable;
143
typedef
QHash<QString, std::shared_ptr<QgsServerApi>> ApiTable;
144
typedef
QHash<QString, QPair<QString, QString>> VersionTable;
145
146
QgsServiceNativeLoader
mNativeLoader;
147
148
ServiceTable mServices;
149
VersionTable mServiceVersions;
150
ApiTable mApis;
151
VersionTable mApiVersions;
152
};
153
154
#endif
QgsServerApi
Server generic API endpoint abstract base class.
Definition
qgsserverapi.h:81
QgsServerInterface
Defines interfaces exposed by QGIS Server and made available to plugins.
Definition
qgsserverinterface.h:61
QgsServerRequest
Defines requests passed to QgsService classes.
Definition
qgsserverrequest.h:36
QgsServiceNativeLoader
Defines the native service module loader for QGIS server services.
Definition
qgsservicenativeloader.h:45
QgsServiceRegistry::cleanUp
void cleanUp()
Clean up registered service and unregister modules.
Definition
qgsserviceregistry.cpp:336
QgsServiceRegistry::registerApi
bool registerApi(QgsServerApi *api)
Registers the QgsServerApi api.
Definition
qgsserviceregistry.cpp:345
QgsServiceRegistry::unregisterService
int unregisterService(const QString &name, const QString &version=QString())
Unregister service from its name and version.
Definition
qgsserviceregistry.cpp:270
QgsServiceRegistry::unregisterApi
int unregisterApi(const QString &name, const QString &version=QString())
Unregisters API from its name and version.
Definition
qgsserviceregistry.cpp:165
QgsServiceRegistry::QgsServiceRegistry
QgsServiceRegistry()=default
QgsServiceRegistry::apiForRequest
QgsServerApi * apiForRequest(const QgsServerRequest &request) const
Searches the API register for an API matching the request and returns a (possibly NULL) pointer to it...
Definition
qgsserviceregistry.cpp:226
QgsServiceRegistry::init
void init(const QString &nativeModulepath, QgsServerInterface *serverIface=nullptr)
Initialize registry, load modules and auto register services.
Definition
qgsserviceregistry.cpp:331
QgsServiceRegistry::getService
QgsService * getService(const QString &name, const QString &version=QString())
Retrieve a service from its name.
Definition
qgsserviceregistry.cpp:93
QgsServiceRegistry::registerService
void registerService(QgsService *service)
Register a service by its name and version.
Definition
qgsserviceregistry.cpp:122
QgsServiceRegistry::getApi
QgsServerApi * getApi(const QString &name, const QString &version=QString())
Retrieves an API from its name.
Definition
qgsserviceregistry.cpp:241
QgsService
Defines interfaces for QGIS server services.
Definition
qgsservice.h:38
qgis.h
SIP_SKIP
#define SIP_SKIP
Definition
qgis_sip.h:138
SIP_TRANSFER
#define SIP_TRANSFER
Definition
qgis_sip.h:35
qgsservicenativeloader.h
Generated on
for QGIS API Documentation by
1.17.0