Canorus  0.7
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
/home/iurt/rpm/BUILD/canorus-0.7.R1002/src/core/archive.h
Go to the documentation of this file.
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_ */