PCAP/PDML import: class PdmlProtocol - removed protoName member; made constructor protected

This commit is contained in:
Srivats P. 2011-04-10 21:03:47 +05:30
parent e6b2274c9c
commit 5db314722d
4 changed files with 41 additions and 77 deletions

View File

@ -19,8 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>
#include "pdml_p.h" #include "pdml_p.h"
#include "protocolmanager.h"
#include "arp.pb.h" #include "arp.pb.h"
#include "eth2.pb.h" #include "eth2.pb.h"
#include "dot3.pb.h" #include "dot3.pb.h"
@ -41,24 +39,17 @@ along with this program. If not, see <http://www.gnu.org/licenses/>
#include "udp.pb.h" #include "udp.pb.h"
#include "vlan.pb.h" #include "vlan.pb.h"
//#include <QMessageBox>
#include <QRegExp> #include <QRegExp>
#include <string> #include <string>
extern ProtocolManager *OstProtocolManager;
const int kBaseHex = 16; const int kBaseHex = 16;
//static PdmlReader *gPdmlReader = NULL;
// ---------------------------------------------------------- // // ---------------------------------------------------------- //
// PdmlUnknownProtocol // // PdmlUnknownProtocol //
// ---------------------------------------------------------- // // ---------------------------------------------------------- //
PdmlUnknownProtocol::PdmlUnknownProtocol() PdmlUnknownProtocol::PdmlUnknownProtocol()
{ {
pdmlProtoName_ = "";
ostProtoId_ = OstProto::Protocol::kHexDumpFieldNumber; ostProtoId_ = OstProto::Protocol::kHexDumpFieldNumber;
endPos_ = expPos_ = -1; endPos_ = expPos_ = -1;
@ -168,7 +159,6 @@ void PdmlUnknownProtocol::unknownFieldHandler(QString name, int pos,
PdmlGenInfoProtocol::PdmlGenInfoProtocol() PdmlGenInfoProtocol::PdmlGenInfoProtocol()
{ {
pdmlProtoName_ = "geninfo";
} }
PdmlProtocol* PdmlGenInfoProtocol::createInstance() PdmlProtocol* PdmlGenInfoProtocol::createInstance()
@ -176,22 +166,12 @@ PdmlProtocol* PdmlGenInfoProtocol::createInstance()
return new PdmlGenInfoProtocol(); return new PdmlGenInfoProtocol();
} }
#if 0 // done in frame proto
void PdmlGenInfoProtocol::unknownFieldHandler(QString name, int pos,
int size, const QXmlStreamAttributes &attributes, OstProto::Stream *stream)
{
if (name == "len")
stream->mutable_core()->set_frame_len(size+4); // TODO:check FCS
}
#endif
// ---------------------------------------------------------- // // ---------------------------------------------------------- //
// PdmlFrameProtocol // // PdmlFrameProtocol //
// ---------------------------------------------------------- // // ---------------------------------------------------------- //
PdmlFrameProtocol::PdmlFrameProtocol() PdmlFrameProtocol::PdmlFrameProtocol()
{ {
pdmlProtoName_ = "frame";
} }
PdmlProtocol* PdmlFrameProtocol::createInstance() PdmlProtocol* PdmlFrameProtocol::createInstance()
@ -244,7 +224,6 @@ void PdmlFrameProtocol::unknownFieldHandler(QString name, int /*pos*/,
PdmlSvlanProtocol::PdmlSvlanProtocol() PdmlSvlanProtocol::PdmlSvlanProtocol()
{ {
pdmlProtoName_ = "ieee8021ad";
ostProtoId_ = OstProto::Protocol::kSvlanFieldNumber; ostProtoId_ = OstProto::Protocol::kSvlanFieldNumber;
} }
@ -336,7 +315,6 @@ void PdmlSvlanProtocol::unknownFieldHandler(QString name, int /*pos*/,
PdmlVlanProtocol::PdmlVlanProtocol() PdmlVlanProtocol::PdmlVlanProtocol()
{ {
pdmlProtoName_ = "vlan";
ostProtoId_ = OstProto::Protocol::kVlanFieldNumber; ostProtoId_ = OstProto::Protocol::kVlanFieldNumber;
} }
@ -409,7 +387,6 @@ void PdmlVlanProtocol::unknownFieldHandler(QString name, int /*pos*/,
PdmlEthProtocol::PdmlEthProtocol() PdmlEthProtocol::PdmlEthProtocol()
{ {
pdmlProtoName_ = "eth";
ostProtoId_ = OstProto::Protocol::kMacFieldNumber; ostProtoId_ = OstProto::Protocol::kMacFieldNumber;
fieldMap_.insert("eth.dst", OstProto::Mac::kDstMacFieldNumber); fieldMap_.insert("eth.dst", OstProto::Mac::kDstMacFieldNumber);
@ -511,7 +488,6 @@ void PdmlEthProtocol::unknownFieldHandler(QString name, int /*pos*/,
PdmlLlcProtocol::PdmlLlcProtocol() PdmlLlcProtocol::PdmlLlcProtocol()
{ {
pdmlProtoName_ = "llc";
ostProtoId_ = OstProto::Protocol::kLlcFieldNumber; ostProtoId_ = OstProto::Protocol::kLlcFieldNumber;
fieldMap_.insert("llc.dsap", OstProto::Llc::kDsapFieldNumber); fieldMap_.insert("llc.dsap", OstProto::Llc::kDsapFieldNumber);
@ -571,7 +547,6 @@ void PdmlLlcProtocol::postProtocolHandler(OstProto::Protocol *pbProto,
PdmlArpProtocol::PdmlArpProtocol() PdmlArpProtocol::PdmlArpProtocol()
{ {
pdmlProtoName_ = "arp";
ostProtoId_ = OstProto::Protocol::kArpFieldNumber; ostProtoId_ = OstProto::Protocol::kArpFieldNumber;
fieldMap_.insert("arp.opcode", OstProto::Arp::kOpCodeFieldNumber); fieldMap_.insert("arp.opcode", OstProto::Arp::kOpCodeFieldNumber);
@ -595,7 +570,6 @@ PdmlProtocol* PdmlArpProtocol::createInstance()
PdmlIp4Protocol::PdmlIp4Protocol() PdmlIp4Protocol::PdmlIp4Protocol()
{ {
pdmlProtoName_ = "ip";
ostProtoId_ = OstProto::Protocol::kIp4FieldNumber; ostProtoId_ = OstProto::Protocol::kIp4FieldNumber;
fieldMap_.insert("ip.version", OstProto::Ip4::kVerHdrlenFieldNumber); fieldMap_.insert("ip.version", OstProto::Ip4::kVerHdrlenFieldNumber);
@ -669,7 +643,6 @@ void PdmlIp4Protocol::postProtocolHandler(OstProto::Protocol *pbProto,
PdmlIp6Protocol::PdmlIp6Protocol() PdmlIp6Protocol::PdmlIp6Protocol()
{ {
pdmlProtoName_ = "ipv6";
ostProtoId_ = OstProto::Protocol::kIp6FieldNumber; ostProtoId_ = OstProto::Protocol::kIp6FieldNumber;
fieldMap_.insert("ipv6.version", OstProto::Ip6::kVersionFieldNumber); fieldMap_.insert("ipv6.version", OstProto::Ip6::kVersionFieldNumber);
@ -728,7 +701,6 @@ void PdmlIp6Protocol::postProtocolHandler(OstProto::Protocol *pbProto,
PdmlIcmpProtocol::PdmlIcmpProtocol() PdmlIcmpProtocol::PdmlIcmpProtocol()
{ {
pdmlProtoName_ = "icmp";
ostProtoId_ = OstProto::Protocol::kIcmpFieldNumber; ostProtoId_ = OstProto::Protocol::kIcmpFieldNumber;
fieldMap_.insert("icmp.type", OstProto::Icmp::kTypeFieldNumber); fieldMap_.insert("icmp.type", OstProto::Icmp::kTypeFieldNumber);
@ -803,7 +775,6 @@ void PdmlIcmpProtocol::postProtocolHandler(OstProto::Protocol *pbProto,
PdmlIcmp6Protocol::PdmlIcmp6Protocol() PdmlIcmp6Protocol::PdmlIcmp6Protocol()
{ {
pdmlProtoName_ = "icmpv6";
ostProtoId_ = OstProto::Protocol::kSampleFieldNumber; ostProtoId_ = OstProto::Protocol::kSampleFieldNumber;
proto_ = NULL; proto_ = NULL;
@ -885,7 +856,6 @@ void PdmlIcmp6Protocol::unknownFieldHandler(QString name,
PdmlIgmpProtocol::PdmlIgmpProtocol() PdmlIgmpProtocol::PdmlIgmpProtocol()
{ {
pdmlProtoName_ = "igmp";
ostProtoId_ = OstProto::Protocol::kIgmpFieldNumber; ostProtoId_ = OstProto::Protocol::kIgmpFieldNumber;
fieldMap_.insert("igmp.max_resp", fieldMap_.insert("igmp.max_resp",
@ -1009,7 +979,6 @@ void PdmlIgmpProtocol::postProtocolHandler(OstProto::Protocol* /*pbProto*/,
PdmlMldProtocol::PdmlMldProtocol() PdmlMldProtocol::PdmlMldProtocol()
{ {
pdmlProtoName_ = "mld";
ostProtoId_ = OstProto::Protocol::kMldFieldNumber; ostProtoId_ = OstProto::Protocol::kMldFieldNumber;
fieldMap_.insert("icmpv6.code", OstProto::Gmp::kRsvdCodeFieldNumber); fieldMap_.insert("icmpv6.code", OstProto::Gmp::kRsvdCodeFieldNumber);
@ -1125,7 +1094,6 @@ void PdmlMldProtocol::unknownFieldHandler(QString name, int /*pos*/,
PdmlTcpProtocol::PdmlTcpProtocol() PdmlTcpProtocol::PdmlTcpProtocol()
{ {
pdmlProtoName_ = "tcp";
ostProtoId_ = OstProto::Protocol::kTcpFieldNumber; ostProtoId_ = OstProto::Protocol::kTcpFieldNumber;
fieldMap_.insert("tcp.srcport", OstProto::Tcp::kSrcPortFieldNumber); fieldMap_.insert("tcp.srcport", OstProto::Tcp::kSrcPortFieldNumber);
@ -1219,7 +1187,6 @@ void PdmlTcpProtocol::postProtocolHandler(OstProto::Protocol *pbProto,
PdmlUdpProtocol::PdmlUdpProtocol() PdmlUdpProtocol::PdmlUdpProtocol()
{ {
pdmlProtoName_ = "udp"; // OR udplite
ostProtoId_ = OstProto::Protocol::kUdpFieldNumber; ostProtoId_ = OstProto::Protocol::kUdpFieldNumber;
fieldMap_.insert("udp.srcport", OstProto::Udp::kSrcPortFieldNumber); fieldMap_.insert("udp.srcport", OstProto::Udp::kSrcPortFieldNumber);
@ -1255,7 +1222,6 @@ void PdmlUdpProtocol::postProtocolHandler(OstProto::Protocol *pbProto,
PdmlTextProtocol::PdmlTextProtocol() PdmlTextProtocol::PdmlTextProtocol()
{ {
pdmlProtoName_ = "text";
ostProtoId_ = OstProto::Protocol::kTextProtocolFieldNumber; ostProtoId_ = OstProto::Protocol::kTextProtocolFieldNumber;
} }

View File

@ -25,8 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>
class PdmlUnknownProtocol : public PdmlProtocol class PdmlUnknownProtocol : public PdmlProtocol
{ {
public: public:
PdmlUnknownProtocol();
static PdmlProtocol* createInstance(); static PdmlProtocol* createInstance();
virtual void preProtocolHandler(QString name, virtual void preProtocolHandler(QString name,
@ -39,6 +37,9 @@ public:
virtual void unknownFieldHandler(QString name, int pos, int size, virtual void unknownFieldHandler(QString name, int pos, int size,
const QXmlStreamAttributes &attributes, const QXmlStreamAttributes &attributes,
OstProto::Protocol *pbProto, OstProto::Stream *stream); OstProto::Protocol *pbProto, OstProto::Stream *stream);
protected:
PdmlUnknownProtocol();
private: private:
int endPos_; int endPos_;
int expPos_; int expPos_;
@ -47,40 +48,42 @@ private:
class PdmlGenInfoProtocol : public PdmlProtocol class PdmlGenInfoProtocol : public PdmlProtocol
{ {
public: public:
static PdmlProtocol* createInstance();
protected:
PdmlGenInfoProtocol(); PdmlGenInfoProtocol();
static PdmlProtocol* createInstance();
}; };
class PdmlFrameProtocol : public PdmlProtocol class PdmlFrameProtocol : public PdmlProtocol
{ {
public: public:
PdmlFrameProtocol();
static PdmlProtocol* createInstance(); static PdmlProtocol* createInstance();
virtual void unknownFieldHandler(QString name, int pos, int size, virtual void unknownFieldHandler(QString name, int pos, int size,
const QXmlStreamAttributes &attributes, const QXmlStreamAttributes &attributes,
OstProto::Protocol *pbProto, OstProto::Stream *stream); OstProto::Protocol *pbProto, OstProto::Stream *stream);
protected:
PdmlFrameProtocol();
}; };
class PdmlEthProtocol : public PdmlProtocol class PdmlEthProtocol : public PdmlProtocol
{ {
public: public:
PdmlEthProtocol();
static PdmlProtocol* createInstance(); static PdmlProtocol* createInstance();
virtual void unknownFieldHandler(QString name, int pos, int size, virtual void unknownFieldHandler(QString name, int pos, int size,
const QXmlStreamAttributes &attributes, const QXmlStreamAttributes &attributes,
OstProto::Protocol *pbProto, OstProto::Stream *stream); OstProto::Protocol *pbProto, OstProto::Stream *stream);
protected:
PdmlEthProtocol();
}; };
class PdmlSvlanProtocol : public PdmlProtocol class PdmlSvlanProtocol : public PdmlProtocol
{ {
public: public:
PdmlSvlanProtocol();
static PdmlProtocol* createInstance(); static PdmlProtocol* createInstance();
virtual void preProtocolHandler(QString name, virtual void preProtocolHandler(QString name,
@ -89,13 +92,13 @@ public:
virtual void unknownFieldHandler(QString name, int pos, int size, virtual void unknownFieldHandler(QString name, int pos, int size,
const QXmlStreamAttributes &attributes, const QXmlStreamAttributes &attributes,
OstProto::Protocol *pbProto, OstProto::Stream *stream); OstProto::Protocol *pbProto, OstProto::Stream *stream);
protected:
PdmlSvlanProtocol();
}; };
class PdmlVlanProtocol : public PdmlProtocol class PdmlVlanProtocol : public PdmlProtocol
{ {
public: public:
PdmlVlanProtocol();
static PdmlProtocol* createInstance(); static PdmlProtocol* createInstance();
virtual void preProtocolHandler(QString name, virtual void preProtocolHandler(QString name,
@ -104,13 +107,13 @@ public:
virtual void unknownFieldHandler(QString name, int pos, int size, virtual void unknownFieldHandler(QString name, int pos, int size,
const QXmlStreamAttributes &attributes, const QXmlStreamAttributes &attributes,
OstProto::Protocol *pbProto, OstProto::Stream *stream); OstProto::Protocol *pbProto, OstProto::Stream *stream);
protected:
PdmlVlanProtocol();
}; };
class PdmlLlcProtocol : public PdmlProtocol class PdmlLlcProtocol : public PdmlProtocol
{ {
public: public:
PdmlLlcProtocol();
static PdmlProtocol* createInstance(); static PdmlProtocol* createInstance();
virtual void unknownFieldHandler(QString name, int pos, int size, virtual void unknownFieldHandler(QString name, int pos, int size,
@ -118,21 +121,22 @@ public:
OstProto::Protocol *pbProto, OstProto::Stream *stream); OstProto::Protocol *pbProto, OstProto::Stream *stream);
virtual void postProtocolHandler(OstProto::Protocol *pbProto, virtual void postProtocolHandler(OstProto::Protocol *pbProto,
OstProto::Stream *stream); OstProto::Stream *stream);
protected:
PdmlLlcProtocol();
}; };
class PdmlArpProtocol : public PdmlProtocol class PdmlArpProtocol : public PdmlProtocol
{ {
public: public:
PdmlArpProtocol();
static PdmlProtocol* createInstance(); static PdmlProtocol* createInstance();
protected:
PdmlArpProtocol();
}; };
class PdmlIp4Protocol : public PdmlProtocol class PdmlIp4Protocol : public PdmlProtocol
{ {
public: public:
PdmlIp4Protocol();
static PdmlProtocol* createInstance(); static PdmlProtocol* createInstance();
virtual void unknownFieldHandler(QString name, int pos, int size, virtual void unknownFieldHandler(QString name, int pos, int size,
@ -140,6 +144,8 @@ public:
OstProto::Protocol *pbProto, OstProto::Stream *stream); OstProto::Protocol *pbProto, OstProto::Stream *stream);
virtual void postProtocolHandler(OstProto::Protocol *pbProto, virtual void postProtocolHandler(OstProto::Protocol *pbProto,
OstProto::Stream *stream); OstProto::Stream *stream);
protected:
PdmlIp4Protocol();
private: private:
QByteArray options_; QByteArray options_;
}; };
@ -147,8 +153,6 @@ private:
class PdmlIp6Protocol : public PdmlProtocol class PdmlIp6Protocol : public PdmlProtocol
{ {
public: public:
PdmlIp6Protocol();
static PdmlProtocol* createInstance(); static PdmlProtocol* createInstance();
virtual void unknownFieldHandler(QString name, int pos, int size, virtual void unknownFieldHandler(QString name, int pos, int size,
@ -156,14 +160,14 @@ public:
OstProto::Protocol *pbProto, OstProto::Stream *stream); OstProto::Protocol *pbProto, OstProto::Stream *stream);
virtual void postProtocolHandler(OstProto::Protocol *pbProto, virtual void postProtocolHandler(OstProto::Protocol *pbProto,
OstProto::Stream *stream); OstProto::Stream *stream);
protected:
PdmlIp6Protocol();
}; };
class PdmlIcmpProtocol : public PdmlProtocol class PdmlIcmpProtocol : public PdmlProtocol
{ {
friend class PdmlIcmp6Protocol; friend class PdmlIcmp6Protocol;
public: public:
PdmlIcmpProtocol();
static PdmlProtocol* createInstance(); static PdmlProtocol* createInstance();
virtual void preProtocolHandler(QString name, virtual void preProtocolHandler(QString name,
@ -174,6 +178,8 @@ public:
OstProto::Protocol *pbProto, OstProto::Stream *stream); OstProto::Protocol *pbProto, OstProto::Stream *stream);
virtual void postProtocolHandler(OstProto::Protocol *pbProto, virtual void postProtocolHandler(OstProto::Protocol *pbProto,
OstProto::Stream *stream); OstProto::Stream *stream);
protected:
PdmlIcmpProtocol();
private: private:
static const uint kIcmpInvalidType = 0xFFFFFFFF; static const uint kIcmpInvalidType = 0xFFFFFFFF;
@ -185,8 +191,6 @@ class PdmlMldProtocol : public PdmlProtocol
{ {
friend class PdmlIcmp6Protocol; friend class PdmlIcmp6Protocol;
public: public:
PdmlMldProtocol();
static PdmlProtocol* createInstance(); static PdmlProtocol* createInstance();
virtual void preProtocolHandler(QString name, virtual void preProtocolHandler(QString name,
@ -195,6 +199,8 @@ public:
virtual void unknownFieldHandler(QString name, int pos, int size, virtual void unknownFieldHandler(QString name, int pos, int size,
const QXmlStreamAttributes &attributes, const QXmlStreamAttributes &attributes,
OstProto::Protocol *pbProto, OstProto::Stream *stream); OstProto::Protocol *pbProto, OstProto::Stream *stream);
protected:
PdmlMldProtocol();
private: private:
static const uint kMldQuery = 0x82; static const uint kMldQuery = 0x82;
static const uint kMldV1Query = 0x82; static const uint kMldV1Query = 0x82;
@ -206,8 +212,6 @@ private:
class PdmlIcmp6Protocol : public PdmlProtocol class PdmlIcmp6Protocol : public PdmlProtocol
{ {
public: public:
PdmlIcmp6Protocol();
static PdmlProtocol* createInstance(); static PdmlProtocol* createInstance();
virtual void preProtocolHandler(QString name, virtual void preProtocolHandler(QString name,
@ -219,6 +223,8 @@ public:
virtual void unknownFieldHandler(QString name, int pos, int size, virtual void unknownFieldHandler(QString name, int pos, int size,
const QXmlStreamAttributes &attributes, const QXmlStreamAttributes &attributes,
OstProto::Protocol *pbProto, OstProto::Stream *stream); OstProto::Protocol *pbProto, OstProto::Stream *stream);
protected:
PdmlIcmp6Protocol();
private: private:
PdmlIcmpProtocol icmp_; PdmlIcmpProtocol icmp_;
PdmlMldProtocol mld_; PdmlMldProtocol mld_;
@ -228,8 +234,6 @@ private:
class PdmlIgmpProtocol : public PdmlProtocol class PdmlIgmpProtocol : public PdmlProtocol
{ {
public: public:
PdmlIgmpProtocol();
static PdmlProtocol* createInstance(); static PdmlProtocol* createInstance();
virtual void preProtocolHandler(QString name, virtual void preProtocolHandler(QString name,
@ -240,6 +244,8 @@ public:
OstProto::Protocol *pbProto, OstProto::Stream *stream); OstProto::Protocol *pbProto, OstProto::Stream *stream);
virtual void postProtocolHandler(OstProto::Protocol *pbProto, virtual void postProtocolHandler(OstProto::Protocol *pbProto,
OstProto::Stream *stream); OstProto::Stream *stream);
protected:
PdmlIgmpProtocol();
private: private:
static const uint kIgmpQuery = 0x11; static const uint kIgmpQuery = 0x11;
static const uint kIgmpV1Query = 0x11; static const uint kIgmpV1Query = 0x11;
@ -252,8 +258,6 @@ private:
class PdmlTcpProtocol : public PdmlProtocol class PdmlTcpProtocol : public PdmlProtocol
{ {
public: public:
PdmlTcpProtocol();
static PdmlProtocol* createInstance(); static PdmlProtocol* createInstance();
virtual void unknownFieldHandler(QString name, int pos, int size, virtual void unknownFieldHandler(QString name, int pos, int size,
@ -261,6 +265,8 @@ public:
OstProto::Protocol *pbProto, OstProto::Stream *stream); OstProto::Protocol *pbProto, OstProto::Stream *stream);
virtual void postProtocolHandler(OstProto::Protocol *pbProto, virtual void postProtocolHandler(OstProto::Protocol *pbProto,
OstProto::Stream *stream); OstProto::Stream *stream);
protected:
PdmlTcpProtocol();
private: private:
QByteArray options_; QByteArray options_;
QByteArray segmentData_; QByteArray segmentData_;
@ -269,18 +275,16 @@ private:
class PdmlUdpProtocol : public PdmlProtocol class PdmlUdpProtocol : public PdmlProtocol
{ {
public: public:
PdmlUdpProtocol();
static PdmlProtocol* createInstance(); static PdmlProtocol* createInstance();
virtual void postProtocolHandler(OstProto::Protocol *pbProto, virtual void postProtocolHandler(OstProto::Protocol *pbProto,
OstProto::Stream *stream); OstProto::Stream *stream);
protected:
PdmlUdpProtocol();
}; };
class PdmlTextProtocol : public PdmlProtocol class PdmlTextProtocol : public PdmlProtocol
{ {
public: public:
PdmlTextProtocol();
static PdmlProtocol* createInstance(); static PdmlProtocol* createInstance();
virtual void preProtocolHandler(QString name, virtual void preProtocolHandler(QString name,
@ -291,6 +295,8 @@ public:
OstProto::Protocol *pbProto, OstProto::Stream *stream); OstProto::Protocol *pbProto, OstProto::Stream *stream);
virtual void postProtocolHandler(OstProto::Protocol *pbProto, virtual void postProtocolHandler(OstProto::Protocol *pbProto,
OstProto::Stream *stream); OstProto::Stream *stream);
protected:
PdmlTextProtocol();
private: private:
enum ContentType { enum ContentType {
kUnknownContent, kUnknownContent,

View File

@ -35,11 +35,6 @@ PdmlProtocol* PdmlProtocol::createInstance()
return new PdmlProtocol(); return new PdmlProtocol();
} }
QString PdmlProtocol::pdmlProtoName() const
{
return pdmlProtoName_;
}
int PdmlProtocol::ostProtoId() const int PdmlProtocol::ostProtoId() const
{ {
return ostProtoId_; return ostProtoId_;

View File

@ -27,17 +27,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>
#include <QString> #include <QString>
#include <QXmlStreamAttributes> #include <QXmlStreamAttributes>
// TODO: add const where possible
class PdmlProtocol class PdmlProtocol
{ {
public: public:
PdmlProtocol(); // TODO: make private
virtual ~PdmlProtocol(); virtual ~PdmlProtocol();
static PdmlProtocol* createInstance(); static PdmlProtocol* createInstance();
QString pdmlProtoName() const;
int ostProtoId() const; int ostProtoId() const;
bool hasField(QString name) const; bool hasField(QString name) const;
int fieldId(QString name) const; int fieldId(QString name) const;
@ -59,7 +55,8 @@ public:
OstProto::Protocol *pbProto, OstProto::Stream *stream); OstProto::Protocol *pbProto, OstProto::Stream *stream);
protected: protected:
QString pdmlProtoName_; // TODO: needed? duplicated in protocolMap_ PdmlProtocol();
int ostProtoId_; int ostProtoId_;
QMap<QString, int> fieldMap_; QMap<QString, int> fieldMap_;
}; };