QGIS API Documentation  3.16.0-Hannover (43b64b13f3)
qgsservicenativeloader.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsservicerenativeloader.h
3 
4  Define Loader for native service modules
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 QGSSERVICENATIVELOADER_H
20 #define QGSSERVICENATIVELOADER_H
21 
22 #define SIP_NO_FILE
23 
24 
25 class QgsServiceModule;
26 class QgsServiceRegistry;
28 class QgsServerInterface;
29 
30 #include "qgis_server.h"
31 
32 #include <QHash>
33 #include <memory>
34 
44 class SERVER_EXPORT QgsServiceNativeLoader
45 {
46  public:
47 
50 
57  void loadModules( const QString &modulePath, QgsServiceRegistry &registrar,
58  QgsServerInterface *serverIface = nullptr );
59 
63  void unloadModules();
64 
71  QgsServiceModule *loadNativeModule( const QString &location );
72 
73 
74  private:
75  typedef QHash<QString, std::shared_ptr<QgsServiceNativeModuleEntry> > ModuleTable;
76 
82  QgsServiceNativeModuleEntry *findModuleEntry( const QString &path );
83 
87  void unloadModuleEntry( QgsServiceNativeModuleEntry *entry );
88 
90  ModuleTable mModules;
91 };
92 
93 #endif
94 
QgsServiceModule
Class defining the service module interface for QGIS server services.
Definition: qgsservicemodule.h:42
QgsServiceNativeLoader
Class defining the native service module loader for QGIS server services.
Definition: qgsservicenativeloader.h:45
QgsServiceRegistry
QgsServiceRegistry Class defining the registry manager for QGIS server services.
Definition: qgsserviceregistry.h:50
QgsServiceNativeModuleEntry
Native module (location, the module itself and the unload function).
Definition: qgsservicenativeloader.cpp:39
QgsServiceNativeLoader::QgsServiceNativeLoader
QgsServiceNativeLoader()=default
Constructor.
QgsServerInterface
QgsServerInterface Class defining interfaces exposed by QGIS Server and made available to plugins.
Definition: qgsserverinterface.h:61