18 using namespace swift::misc::simulation;
24 return getPluginById<ISimulatorFactory>(pluginId);
29 if (!m_plugins.contains(pluginId)) {
return nullptr; }
30 PluginExtended &plugin = m_plugins[pluginId];
37 m_plugins.remove(pluginId);
42 connect(qApp, &QCoreApplication::aboutToQuit, listener, &QObject::deleteLater);
43 plugin.listener = listener;
46 return plugin.listener;
51 if (!m_plugins.contains(pluginId)) {
return nullptr; }
52 PluginExtended &plugin = m_plugins[pluginId];
53 return plugin.listener;
59 for (
const auto &i : m_plugins) { list.
push_back(i.info); }
65 if (m_plugins.isEmpty()) {
return 0; }
68 for (PluginExtended &pi : m_plugins)
70 if (!pi.listener) {
continue; }
71 if (!pi.listener->isRunning()) {
continue; }
83 for (
const QJsonObject &json : plugins)
85 const QString iid = json[
"IID"].toString();
86 if (iid == QStringLiteral(
"org.swift-project.swift_core.simulatorinterface"))
89 it->info.convertFromJson(json);
96 return { QStringLiteral(
"org.swift-project.swift_core.simulatorinterface"),
97 QStringLiteral(
"org.swift-project.swiftgui.pluginconfiginterface") };
virtual void collectPlugins()
Looks for all available plugins.
swift::misc::simulation::CSimulatorPluginInfoList getAvailableSimulatorPlugins() const
Get all simulator driver plugins.
CPluginManagerSimulator(QObject *parent=nullptr)
Ctor.
ISimulatorListener * createListener(const QString &pluginId)
Create simulator listener from the plugin In case one is existing already, it is returned instead....
int checkAvailableListeners()
Check if simulator is connected.
virtual const QString & pluginDirectory() const
Where to look for plugins, absolute path. Default implementation returns plugins in the application d...
virtual swift::misc::CSequence< QString > acceptedIids() const
Returns the list of valid IIDs for the implementation.
ISimulatorFactory * getFactory(const QString &pluginId)
Get simulator factory from the plugin.
ISimulatorListener * getListener(const QString &pluginId)
Get previously created simulator listener from the plugin Returns nullptr if listener is not yet crea...
Base class for all contexts that provide plugin support.
const swift::misc::CSequence< QJsonObject > & getPlugins() const
Gets direct access to all plugins' metadata.
QString pluginIdentifier(const QJsonObject &metadata) const
Gets the plugin identifier from the metadata.
virtual void collectPlugins()
Looks for all available plugins.
Factory pattern class to create instances of ISimulator.
virtual ISimulatorListener * createListener(const swift::misc::simulation::CSimulatorPluginInfo &info)=0
Simulator listener instance.
Interface to a simulator listener.
static QString appendFilePaths(const QString &path1, const QString &path2)
Append file paths.
Class for emitting a log message.
Derived & warning(const char16_t(&format)[N])
Set the severity to warning, providing a format string.
void push_back(const T &value)
Appends an element at the end of the sequence.
static const QString & pluginsDirectory()
Plugins directory.
Value object encapsulating a list of SimulatorInfo objects.
Backend services of the swift project, like dealing with the network or the simulators.
Free functions in swift::misc.