00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 #ifndef ACONTAINER_H
00032 #define ACONTAINER_H
00033
00034 #include "qdom.h"
00035 #include "qstringlist.h"
00036 #include "ananas.h"
00037 #include "acmanifest.h"
00038 #include <qobject.h>
00039
00040
00041
00042
00053 class ANANAS_EXPORT aContainer: public QObject
00054 {
00055 Q_OBJECT
00056 public:
00057
00058 aContainer();
00059 aContainer(const QString& name);
00060 virtual ~aContainer();
00061
00062 virtual bool open();
00063 virtual bool open(const QString &name);
00064 virtual void create();
00065 virtual void close();
00066
00067 virtual bool save();
00068 virtual bool save(const QString& name);
00069 virtual bool addFile(const QString& filename, const QString &newname, int type);
00070 virtual QString realPath(const QString &fname) const;
00071
00072 virtual QString lastError() const;
00073 void setLastError(const QString& errorText);
00074 QString getFileContent(const QString& fileName) const;
00075
00076
00077
00078 protected:
00079 void generateName4TmpDir();
00080 bool createTmpDir();
00081 bool extractManifest(const QString& archName, aCManifest *mf);
00082 bool extractData(const QString& archName);
00083 bool compressFile(const QString& fileName);
00084 void cleanupTmpFiles();
00085
00086 private:
00087 QString txtError;
00088 aCManifest *manifest;
00089 QString tmpDirName;
00090
00091 };
00092
00093 #endif //ACONTAINER_H