#include "protocolmanager.h" #include "mac.h" #include "payload.h" #include "eth2.h" #include "dot3.h" #include "llc.h" #include "snap.h" #include "ip4.h" #include "tcp.h" #include "udp.h" QMap<int, void*> ProtocolManager::factory; QMap<QString, int> ProtocolManager::nameToNumberMap; ProtocolManager OstProtocolManager; ProtocolManager::ProtocolManager() { registerProtocol(51, QString("mac"), (void*) MacProtocol::createInstance); registerProtocol(52, QString("payload"), (void*) PayloadProtocol::createInstance); registerProtocol(121, QString("eth2"), (void*) Eth2Protocol::createInstance); registerProtocol(122, QString("dot3"), (void*) Dot3Protocol::createInstance); registerProtocol(123, QString("llc"), (void*) LlcProtocol::createInstance); registerProtocol(124, QString("snap"), (void*) SnapProtocol::createInstance); registerProtocol(130, QString("ip4"), (void*) Ip4Protocol::createInstance); registerProtocol(140, QString("tcp"), (void*) TcpProtocol::createInstance); registerProtocol(141, QString("udp"), (void*) UdpProtocol::createInstance); } void ProtocolManager::registerProtocol(int protoNumber, QString protoName, void *protoInstanceCreator) { // TODO: validate incoming params for duplicates with existing nameToNumberMap.insert(protoName, protoNumber); factory.insert(protoNumber, protoInstanceCreator); }