Have separate API controller instances per session

PR #16848.
This commit is contained in:
Vladimir Golovnev
2022-04-12 13:39:35 +03:00
committed by GitHub
parent 189514c6de
commit 4471a6377e
11 changed files with 103 additions and 159 deletions

View File

@@ -28,7 +28,11 @@
#pragma once
#include <memory>
#include <QtContainerFwd>
#include <QHash>
#include <QSet>
#include "base/search/searchpluginmanager.h"
#include "apicontroller.h"
@@ -36,7 +40,6 @@
class QJsonArray;
class QJsonObject;
struct ISession;
struct SearchResult;
class SearchController : public APIController
@@ -64,9 +67,10 @@ private:
void checkForUpdatesFinished(const QHash<QString, PluginVersion> &updateInfo);
void checkForUpdatesFailed(const QString &reason);
void searchFinished(ISession *session, int id);
void searchFailed(ISession *session, int id);
int generateSearchId() const;
QJsonObject getResults(const QList<SearchResult> &searchResults, bool isSearchActive, int totalResults) const;
QJsonArray getPluginsInfo(const QStringList &plugins) const;
QSet<int> m_activeSearches;
QHash<int, std::shared_ptr<SearchHandler>> m_searchHandlers;
};