Main Page   Class Hierarchy   Compound List   File List   Compound Members  

channelioxml.h

00001 // -*- c++ -*-
00002 
00003 /*
00004  *
00005  * Copyright (C) 2002 Richard Moore <rich@kde.org>
00006  *
00007  * This library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU Library General Public
00009  * License as published by the Free Software Foundation; either
00010  * version 2 of the License, or (at your option) any later version.
00011  *
00012  * This library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00015  * Library General Public License for more details.
00016  *
00017  * You should have received a copy of the GNU Library General Public License
00018  * along with this library; see the file COPYING.LIB.  If not, write to
00019  * the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
00020  * Boston, MA 02111-1307, USA.
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     // Read helpers
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     // Write helpers
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 

Generated at Thu Jan 30 02:56:02 2003 for QtVision by doxygen1.2.9.1 written by Dimitri van Heesch, © 1997-2001