Files
cpp/include/loadGroupXMLParser.h
2021-03-16 09:30:56 +01:00

78 lines
1.8 KiB
C++

///
/// \file loadGroupXMLParser.h
/// \author Jan Chrin, G. Prekas, PSI
/// \date Release: February 2015
/// \version CAFE 1.0.0
///
#ifndef LOADGROUPXMLPARSER_H
#define LOADGROUPXMLPARSER_H
#include <config.h>
#if HAVE_LIBQTXML
#include <stdio.h>
#include <stdlib.h>
#include <deviceCollection.h>
//include <QtXml/QXmlDefaultHandler>
#include <QXmlDefaultHandler>
class loadGroupXMLParser : public QXmlDefaultHandler
{
public:
loadGroupXMLParser();
virtual ~loadGroupXMLParser();
bool startElement(const QString& namespaceURI, const QString& localName, const QString& qName, const QXmlAttributes& atts);
bool endElement(const QString& namespaceURI, const QString& localName, const QString& qName);
bool characters(const QString& ch);
std::vector<deviceGroup> groups;
private:
enum
{
NotWaiting,
WaitingForDescription,
WaitingForStatusGroup,
WaitingForMember,
WaitingForName,
WaitingForNelem,
WaitingForStatus,
WaitingForRule,
WaitingForDataType,
WaitingForId,
WaitingForAttrib,
WaitingForCollectiveType
} state;
deviceGroup group;
//collectionMember member;
collectionInGroup collection;
std::string xmlMem;
const static QString& tagCollection_list;
const static QString& tagGroup;
const static QString& tagDescription;
const static QString& tagStatusGroup;
const static QString& tagMember;
const static QString& tagName;
const static QString& tagNelem;
const static QString& tagStatus;
const static QString& tagRule;
const static QString& tagDataType;
const static QString& tagCollection;
const static QString& tagId;
const static QString& tagAttrib;
const static QString& tagCollectiveType;
};
#endif
#endif /* LOADGROUPXMLPARSER_H */