mirror of
https://github.com/Palm1r/QodeAssist.git
synced 2026-05-30 10:59:30 -04:00
feat: Add agents and agents settings
This commit is contained in:
43
sources/providers/ProviderFactory.cpp
Normal file
43
sources/providers/ProviderFactory.cpp
Normal file
@@ -0,0 +1,43 @@
|
||||
// Copyright (C) 2024-2026 Petr Mironychev
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
#include "ProviderFactory.hpp"
|
||||
|
||||
#include <QHash>
|
||||
|
||||
namespace QodeAssist::Providers::ProviderFactory {
|
||||
|
||||
namespace {
|
||||
|
||||
QHash<QString, FactoryFn> &table()
|
||||
{
|
||||
static QHash<QString, FactoryFn> t;
|
||||
return t;
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
void registerType(const QString &name, FactoryFn fn)
|
||||
{
|
||||
if (name.isEmpty() || !fn) return;
|
||||
table().insert(name, std::move(fn));
|
||||
}
|
||||
|
||||
Provider *create(const QString &name, QObject *parent)
|
||||
{
|
||||
auto it = table().constFind(name);
|
||||
if (it == table().constEnd()) return nullptr;
|
||||
return it.value()(parent);
|
||||
}
|
||||
|
||||
QStringList knownNames()
|
||||
{
|
||||
return table().keys();
|
||||
}
|
||||
|
||||
void clear()
|
||||
{
|
||||
table().clear();
|
||||
}
|
||||
|
||||
} // namespace QodeAssist::Providers::ProviderFactory
|
||||
Reference in New Issue
Block a user