From a45977185a485624095bff1a15024e9199eee676 Mon Sep 17 00:00:00 2001 From: Javier Date: Fri, 1 Jan 2016 22:05:42 +0100 Subject: reorganize source files into SAP and agents --- sap/sapmanager.h | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 sap/sapmanager.h (limited to 'sap/sapmanager.h') diff --git a/sap/sapmanager.h b/sap/sapmanager.h new file mode 100644 index 0000000..5619e54 --- /dev/null +++ b/sap/sapmanager.h @@ -0,0 +1,66 @@ +#ifndef SAPMANAGER_H +#define SAPMANAGER_H + +#include +#include +#include +#include "sapserviceinfo.h" + +class SAPAgent; + +class SAPManager : public QObject +{ + Q_OBJECT + + explicit SAPManager(QObject *parent = 0); + Q_DISABLE_COPY(SAPManager) + +public: + static SAPManager * instance(); + + int registerServiceAgent(const SAPServiceInfo &service, SAPAgent *agent); + void unregisterServiceAgent(int agentId); + void unregisterServiceAgent(const QString &profile, SAPServiceInfo::Role role); + + int registeredAgentId(const QString &profile, SAPServiceInfo::Role role); + + bool isRegisteredAgent(int agentId) const; + SAPAgent *agent(int agentId); + SAPServiceInfo serviceInfo(int agentId) const; + + QSet allProfiles() const; + QSet allAgents() const; + + struct RegisteredApplication { + QString package; + QString name; + int version; + bool preinstalled; + }; + + void registerApplicationPackage(const RegisteredApplication &app); + void registerApplicationPackage(const QString &package, const QString &name = QString(), int version = 1, bool preinstalled = false); + void unregisterApplicationPackage(const QString &package); + + QList allPackages() const; + +private: + int findUnusedAgentId() const; + QHash* profilesByRole(SAPServiceInfo::Role role); + +private: + struct RegisteredAgent { + int agentId; + SAPServiceInfo info; + SAPAgent *agent; + }; + + QMap _agents; + + QHash _consumerProfiles; + QHash _providerProfiles; + + QHash _pkgs; +}; + +#endif // SAPMANAGER_H -- cgit v1.2.3