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;
}