QGIS API Documentation  3.6.0-Noosa (5873452)
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 
49  QgsServiceNativeLoader() = default;
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 
Class defining the service module interface for QGIS server services.
QgsServerInterface Class defining interfaces exposed by QGIS Server and made available to plugins...
QgsServiceRegistry Class defining the registry manager for QGIS server services.
Class defining the native service module loader for QGIS server services.
Native module (location, the module itself and the unload function).