Brief description of class still missing. More...
#include <XMLByteArrayStream.h>
Public Member Functions | |
virtual void | addFile (QString fileName, const QByteArray &data) |
void | addXmlFile () |
QByteArray | data () const |
virtual bool | file (QString fileName, QByteArray &data) |
virtual bool | isMultiFile () const |
bool | open (QByteArray data) |
XMLByteArrayStream (QIODevice::OpenMode m) | |
~XMLByteArrayStream () |
Brief description of class still missing.
Store XMLClass information in a QByteArray with format:
QString Tag "XMLClass" qint32 Version (currently 0) File1 QString File name QByteArray File content File2 QString File name QByteArray File content ... FileN QString File name QByteArray File content
QGpCoreTools::XMLByteArrayStream::XMLByteArrayStream | ( | QIODevice::OpenMode | m | ) |
References QGpCoreTools::XMLStream::flush(), and TRACE.
void QGpCoreTools::XMLByteArrayStream::addFile | ( | QString | fileName, |
const QByteArray & | data | ||
) | [virtual] |
Reimplemented from QGpCoreTools::XMLStream.
References data(), QGpCoreTools::XMLStream::fileName(), and TRACE.
Referenced by addXmlFile().
void QGpCoreTools::XMLByteArrayStream::addXmlFile | ( | ) | [inline] |
References addFile(), QGpCoreTools::XMLStream::flush(), and TRACE.
Referenced by QGpCoreTools::XMLHeader::xml_saveByteArray().
QByteArray QGpCoreTools::XMLByteArrayStream::data | ( | ) | const [inline] |
Referenced by addFile(), file(), open(), and QGpCoreTools::XMLHeader::xml_saveByteArray().
{return _data;}
bool QGpCoreTools::XMLByteArrayStream::file | ( | QString | fileName, |
QByteArray & | data | ||
) | [virtual] |
Referenced by QGpCoreTools::XMLHeader::xml_restoreByteArray().
{ TRACE; QMap<QString, QByteArray>::iterator it=_files.find(fileName); if(it==_files.end()) { QDataStream s(&_data, QIODevice::ReadOnly); s.device()->seek(_lastPos); while(_lastPos<_data.size()) { QString readFileName; s >> readFileName; s >> data; _files.insert(readFileName, data); _lastPos=s.device()->pos(); if(readFileName==fileName) return true; } return false; } else { data=it.value(); return true; } }
virtual bool QGpCoreTools::XMLByteArrayStream::isMultiFile | ( | ) | const [inline, virtual] |
Implements QGpCoreTools::XMLStream.
{return true;}
bool QGpCoreTools::XMLByteArrayStream::open | ( | QByteArray | data | ) |
References data(), QGpCoreTools::endl(), QGpCoreTools::App::stream(), QGpCoreTools::tr(), and TRACE.
Referenced by QGpCoreTools::XMLHeader::xml_restoreByteArray().
{ TRACE; ASSERT (_mode==QIODevice::ReadOnly); _data=data; QDataStream s(_data); QString tag; s >> tag; if(tag!="XMLClass") { App::stream() << tr("Wrong tag, not a XMLClass byte array") << endl; return false; } qint32 version; s >> version; if(version>0) { App::stream() << tr("Wrong version(%1), current version is %2").arg(version).arg(0) << endl; return false; } _lastPos=s.device()->pos(); return true; }