00001 00008 #ifndef ARCHIVE_H_ 00009 #define ARCHIVE_H_ 00010 00011 #include <QBuffer> 00012 #include "core/tar.h" 00013 #include <iostream> 00014 00015 class QByteArray; 00016 00017 class CAArchive { 00018 public: 00019 CAArchive(); 00020 CAArchive(QIODevice& arch); 00021 qint64 write(QIODevice& dest); 00022 virtual ~CAArchive(); 00023 00024 // interface to CATar 00025 inline bool addFile(const QString& filename, QIODevice& data) { if(!error()) return _tar->addFile(filename, data); else return false; } 00026 inline bool addFile(const QString& filename, QByteArray data) { if(!error()) return _tar->addFile(filename, data); else return false; } 00027 inline void removeFile(const QString& filename) { if(!error()) _tar->removeFile(filename); } 00028 inline CAIOPtr file(const QString& filename) { if(!error()) return _tar->file(filename); else return CAIOPtr(new QBuffer()); } 00029 inline bool error() { return _err || _tar->error(); } 00030 protected: 00031 static const int CHUNK; 00032 static const char* VERSION; 00033 bool _err; 00034 void parse(QIODevice&); 00035 int getOS(); 00036 00037 CATar *_tar; 00038 }; 00039 00040 #endif /* ARCHIVE_H_ */
1.5.3