00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef CHANNELIOXML_H
00024 #define CHANNELIOXML_H
00025
00026 #include <qdom.h>
00027
00028 #include "channelio.h"
00029
00036 class ChannelIOFormatXML : public ChannelIOFormat
00037 {
00038 public:
00039 ChannelIOFormatXML();
00040 virtual ~ChannelIOFormatXML() {}
00041
00042 virtual bool load( ChannelStore *store, QIODevice *file, const char *fmt );
00043 virtual bool save( ChannelStore *store, QIODevice *file, const char *fmt );
00044 virtual ChannelFileMetaInfo getMetaInfo( QIODevice *file, const char *fmt );
00045
00046 QDomDocument document() const { return doc; }
00047
00048 bool readDocument( ChannelStore *store );
00049 void writeDocument( ChannelStore *store );
00050
00051 protected:
00052
00053 Channel *readChannel( const QDomElement &elem );
00054 QString readText( const QDomElement &elem, const QString &tag );
00055 int readTextInt( const QDomElement &elem, const QString &tag );
00056 unsigned long readTextULong( const QDomElement &parent, const QString &tag );
00057 bool readAttrBool(const QDomElement &elem, const QString &name);
00058
00059
00060 QDomElement writeChannel( QDomElement &parent, Channel *ch );
00061 QDomElement writeText( QDomElement &parent, const QString &tag, const QString &text );
00062 QDomElement writeTextInt( QDomElement &parent, const QString &tag, int text );
00063 QDomElement writeTextULong( QDomElement &parent, const QString &tag, unsigned long text );
00064 QDomElement writeElement( QDomNode &parent, const QString &tag );
00065 void writeAttrBool(QDomElement &parent, const QString &name, const bool val);
00066
00067 private:
00068 QDomDocument doc;
00069 ChannelStore *store;
00070 };
00071
00072 #endif // CHANNELIOXML_H
00073