1
#ifndef KADU_PROTOCOLS_MANAGER_H
2
#define KADU_PROTOCOLS_MANAGER_H
4
#include <QtCore/QList>
9
class KADUAPI ProtocolManager : public QObject
14
virtual Protocol * newInstance(const QString &id) = 0;
18
class KADUAPI ProtocolsManager : public QObject
23
struct ProtocolDescription
27
ProtocolManager *Manager;
29
ProtocolDescription(const QString &id, const QString &name, ProtocolManager *manager)
30
: protocolID(id), Name(name), Manager(manager) {}
31
ProtocolDescription() : protocolID(), Name(), Manager(0) {}
32
ProtocolDescription(const ProtocolDescription &c)
33
: protocolID(c.protocolID), Name(c.Name), Manager(c.Manager) {}
35
bool operator == (const ProtocolDescription &pd) { return protocolID == pd.protocolID; }
38
QList<ProtocolDescription> protocolDescriptions;
39
QList<Protocol *> protocols;
42
static void initModule();
43
static void closeModule();
45
QList<Protocol *> byProtocolID(const QString &protocolID);
46
Protocol *byID(const QString &protocolID, const QString &ID);
48
void registerProtocol(const QString &protocolID, const QString &name, ProtocolManager *manager);
49
void unregisterProtocol(const QString &protocolID);
50
Protocol * newProtocol(const QString &protocolID, const QString &ID);
54
extern KADUAPI ProtocolsManager *protocols_manager;