1
/***************************************************************************
3
* This program is free software; you can redistribute it and/or modify *
4
* it under the terms of the GNU General Public License as published by *
5
* the Free Software Foundation; either version 2 of the License, or *
6
* (at your option) any later version. *
8
***************************************************************************/
13
#include "protocols_manager.h"
15
ProtocolsManager::ProtocolsManager()
16
: QObject(), protocolDescriptions(), protocols()
20
ProtocolsManager::~ProtocolsManager()
24
void ProtocolsManager::initModule()
26
protocols_manager = new ProtocolsManager();
29
void ProtocolsManager::closeModule()
31
delete protocols_manager;
32
protocols_manager = 0;
35
void ProtocolsManager::registerProtocol(const QString &protocolID, const QString &name, ProtocolManager *manager)
37
protocolDescriptions.append(ProtocolDescription(protocolID, name, manager));
40
void ProtocolsManager::unregisterProtocol(const QString &protocolID)
42
foreach(const ProtocolDescription &protoDesc, protocolDescriptions)
43
if (protoDesc.protocolID == protocolID)
45
protocolDescriptions.removeAll(protoDesc);
49
kdebugm(KDEBUG_WARNING, "protocol(%s) not found\n", qPrintable(protocolID));
52
QList<Protocol *> ProtocolsManager::byProtocolID(const QString &protocolID)
54
QList<Protocol *> ret;
56
foreach(Protocol *proto, protocols)
57
if (proto->protocolID() == protocolID)
61
kdebugm(KDEBUG_WARNING, "protocol(%s) not found\n", qPrintable(protocolID));
66
Protocol * ProtocolsManager::byID(const QString &protocolID, const QString &ID)
68
foreach(Protocol *proto, protocols)
69
if (proto->protocolID() == protocolID && proto->ID() == ID)
72
kdebugm(KDEBUG_WARNING, "protocol,id(%s,%s) not found\n", qPrintable(protocolID), qPrintable(ID));
76
Protocol * ProtocolsManager::newProtocol(const QString &protocolID, const QString &ID)
79
foreach(const ProtocolDescription &protoDesc, protocolDescriptions)
80
if (protoDesc.protocolID == protocolID)
82
proto = protoDesc.Manager->newInstance(ID);
87
protocols.append(proto);
89
kdebugm(KDEBUG_WARNING, "protocol(%s) not found\n", qPrintable(protocolID));
94
ProtocolsManager *protocols_manager;