|
Canorus
0.7
|
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 class QString; 00017 00018 class CAArchive { 00019 public: 00020 CAArchive(); 00021 CAArchive(QIODevice& arch); 00022 qint64 write(QIODevice& dest); 00023 virtual ~CAArchive(); 00024 00025 // interface to CATar 00026 inline bool addFile(const QString& filename, QIODevice& data) { if(!error()) return _tar->addFile(filename, data); else return false; } 00027 inline bool addFile(const QString& filename, QByteArray data) { if(!error()) return _tar->addFile(filename, data); else return false; } 00028 inline void removeFile(const QString& filename) { if(!error()) _tar->removeFile(filename); } 00029 inline CAIOPtr file(const QString& filename) { if(!error()) return _tar->file(filename); else return CAIOPtr(new QBuffer()); } 00030 inline bool error() { return _err || _tar->error(); } 00031 inline const QString& version() { return _version; } 00032 protected: 00033 static const int CHUNK; 00034 static const QString COMMENT; 00035 00036 QString _version; 00037 bool _err; 00038 void parse(QIODevice&); 00039 int getOS(); 00040 00041 CATar *_tar; 00042 }; 00043 00044 #endif /* ARCHIVE_H_ */
1.8.0