diff options
author | Javier <dev.git@javispedro.com> | 2014-10-19 18:45:03 +0200 |
---|---|---|
committer | Javier <dev.git@javispedro.com> | 2014-10-19 18:45:03 +0200 |
commit | d8d8fc7a0d139e7b864eee3b573bd208f823ad4f (patch) | |
tree | a9b54d6e6e6941c620f4f10cef4b5def9be86f82 /sapmanager.h | |
download | sapd-d8d8fc7a0d139e7b864eee3b573bd208f823ad4f.tar.gz sapd-d8d8fc7a0d139e7b864eee3b573bd208f823ad4f.zip |
initial import, no crypto
Diffstat (limited to 'sapmanager.h')
-rw-r--r-- | sapmanager.h | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/sapmanager.h b/sapmanager.h new file mode 100644 index 0000000..e9f60cc --- /dev/null +++ b/sapmanager.h @@ -0,0 +1,54 @@ +#ifndef SAPMANAGER_H +#define SAPMANAGER_H + +#include <QtCore/QObject> +#include <QtCore/QMap> +#include <QtCore/QHash> +#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<QString> allProfiles(); + +signals: + +public slots: + +private: + int findUnusedAgentId() const; + QHash<QString, int>* profilesByRole(SAPServiceInfo::Role role); + +private: + struct RegisteredAgent { + int agentId; + SAPServiceInfo info; + SAPAgent *agent; + }; + + QMap<int, RegisteredAgent> _agents; + + QHash<QString, int> _consumerProfiles; + QHash<QString, int> _providerProfiles; +}; + +#endif // SAPMANAGER_H |