swift
pluginmanagersimulator.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (C) 2013 swift Project Community / Contributors
2 // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
3 
5 
6 #ifndef SWIFT_CORE_PLUGIN_MANAGER_SIMULATOR_H
7 #define SWIFT_CORE_PLUGIN_MANAGER_SIMULATOR_H
8 
9 #include <QMap>
10 #include <QObject>
11 #include <QString>
12 
13 #include "core/pluginmanager.h"
14 #include "core/swiftcoreexport.h"
15 #include "misc/sequence.h"
18 
19 namespace swift::core
20 {
21  class ISimulatorFactory;
22  class ISimulatorListener;
23 
28  {
29  Q_OBJECT
30 
31  public:
33  CPluginManagerSimulator(QObject *parent = nullptr);
34 
36  ISimulatorFactory *getFactory(const QString &pluginId);
37 
41  ISimulatorListener *createListener(const QString &pluginId);
42 
45  ISimulatorListener *getListener(const QString &pluginId);
46 
48  swift::misc::simulation::CSimulatorPluginInfoList getAvailableSimulatorPlugins() const;
49 
51  int checkAvailableListeners();
52 
54  virtual void collectPlugins() override;
55 
56  protected:
58  virtual swift::misc::CSequence<QString> acceptedIids() const override;
59 
61  virtual const QString &pluginDirectory() const override;
62 
63  private:
67  struct PluginExtended
68  {
70  ISimulatorListener *listener = nullptr;
71  };
72 
74  };
75 } // namespace swift::core
76 
77 #endif // SWIFT_CORE_PLUGIN_MANAGER_SIMULATOR_H
Manages plugins for the simulator context.
Base class for all contexts that provide plugin support.
Definition: pluginmanager.h:24
Factory pattern class to create instances of ISimulator.
Definition: simulator.h:691
Interface to a simulator listener.
Definition: simulator.h:630
Generic sequential container with value semantics.
Definition: sequence.h:86
Value object encapsulating a list of SimulatorInfo objects.
Backend services of the swift project, like dealing with the network or the simulators.
Definition: actionbind.cpp:7
#define SWIFT_CORE_EXPORT
Export a class or function from the library.