BareMetal: Move DebugServerProviderManager closer to new setup system

Change-Id: Ic8029b0436d4c0e86e0f707632139a2074b296eb
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
This commit is contained in:
hjk
2023-11-17 10:19:48 +01:00
parent 7c7abec04f
commit c4c561556d
4 changed files with 18 additions and 31 deletions

View File

@@ -4,11 +4,9 @@
#include "baremetalplugin.h"
#include "baremetalconstants.h"
#include "baremetaldebugsupport.h"
#include "baremetaldevice.h"
#include "baremetalrunconfiguration.h"
#include "baremetaltr.h"
#include "debugserverprovidermanager.h"
@@ -18,25 +16,10 @@
namespace BareMetal::Internal {
// BareMetalPluginPrivate
class BareMetalPluginPrivate
{
public:
DebugServerProviderManager debugServerProviderManager;
};
// BareMetalPlugin
BareMetalPlugin::~BareMetalPlugin()
{
delete d;
}
void BareMetalPlugin::initialize()
{
d = new BareMetalPluginPrivate;
setupBareMetalDevice();
setupIarToolChain();
@@ -49,7 +32,7 @@ void BareMetalPlugin::initialize()
void BareMetalPlugin::extensionsInitialized()
{
DebugServerProviderManager::instance()->restoreProviders();
setupDebugServerProviderManager(this);
}
} // BareMetal::Internal

View File

@@ -13,13 +13,9 @@ class BareMetalPlugin final : public ExtensionSystem::IPlugin
Q_OBJECT
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "BareMetal.json")
~BareMetalPlugin() final;
void initialize() final;
void extensionsInitialized() final;
class BareMetalPluginPrivate *d = nullptr;
#ifdef WITH_TESTS
private slots:
void testIarOutputParsers_data();

View File

@@ -33,8 +33,6 @@ const char countKeyC[] = "DebugServerProvider.Count";
const char fileVersionKeyC[] = "Version";
const char fileNameKeyC[] = "debugserverproviders.xml";
static DebugServerProviderManager *m_instance = nullptr;
// DebugServerProviderManager
DebugServerProviderManager::DebugServerProviderManager()
@@ -48,7 +46,6 @@ DebugServerProviderManager::DebugServerProviderManager()
new StLinkUvscServerProviderFactory,
new JLinkUvscServerProviderFactory})
{
m_instance = this;
m_writer = new Utils::PersistentSettingsWriter(
m_configFile, "QtCreatorDebugServerProviders");
@@ -69,14 +66,26 @@ DebugServerProviderManager::~DebugServerProviderManager()
m_providers.clear();
qDeleteAll(m_factories);
delete m_writer;
m_instance = nullptr;
}
static DebugServerProviderManager *m_instance = nullptr;
DebugServerProviderManager *DebugServerProviderManager::instance()
{
if (!m_instance) {
m_instance = new DebugServerProviderManager;
m_instance->restoreProviders();
}
return m_instance;
}
void setupDebugServerProviderManager(QObject *guard)
{
DebugServerProviderManager::instance(); // force creation
m_instance->setParent(guard);
}
void DebugServerProviderManager::restoreProviders()
{
PersistentSettingsReader reader;

View File

@@ -13,7 +13,6 @@ namespace Utils { class PersistentSettingsWriter; }
namespace BareMetal::Internal {
class BareMetalPlugin;
class BareMetalPluginPrivate;
class IDebugServerProvider;
class IDebugServerProviderFactory;
@@ -25,7 +24,6 @@ class DebugServerProviderManager final : public QObject
public:
static DebugServerProviderManager *instance();
~DebugServerProviderManager() final;
static QList<IDebugServerProvider *> providers();
static QList<IDebugServerProviderFactory *> factories();
@@ -42,9 +40,10 @@ signals:
void providersLoaded();
private:
void saveProviders();
DebugServerProviderManager();
~DebugServerProviderManager() final;
void saveProviders();
void restoreProviders();
static void notifyAboutUpdate(IDebugServerProvider *provider);
@@ -53,9 +52,9 @@ private:
const Utils::FilePath m_configFile;
const QList<IDebugServerProviderFactory *> m_factories;
friend class BareMetalPlugin; // for restoreProviders
friend class BareMetalPluginPrivate; // for constructor
friend class IDebugServerProvider;
};
void setupDebugServerProviderManager(QObject *guard);
} // BareMetal::Internal