// // Copyright 2008 Jim Bublitz // Earlier copyrights 1998 - 2007 Jim Bublitz also apply // Generated by twine // This file is part of PyKDE4. // PyKDE4 is free software; you can redistribute it and/or modify // it under the terms of the GNU Lesser General Public License as // published by the Free Software Foundation; either version 2.1 of // the License, or (at your option) any later version. // PyKDE4 is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this program. If not, see . %ModuleHeaderCode //ctscc #include #include %End class KArchive { %TypeHeaderCode #include %End protected: KArchive (const QString& fileName); KArchive (QIODevice* dev); public: virtual bool open (QIODevice::OpenMode mode); virtual bool close (); bool isOpen () const; QIODevice::OpenMode mode () const; QIODevice* device () const; QString fileName () const; const KArchiveDirectory* directory () const; bool addLocalFile (const QString& fileName, const QString& destName); bool addLocalDirectory (const QString& path, const QString& destName); enum { UnknownTime }; virtual bool writeDir (const QString& name, const QString& user, const QString& group, mode_t perm = 040755, time_t atime = UnknownTime, time_t mtime = UnknownTime, time_t ctime = UnknownTime); virtual bool writeSymLink (const QString& name, const QString& target, const QString& user, const QString& group, mode_t perm = 0120755, time_t atime = UnknownTime, time_t mtime = UnknownTime, time_t ctime = UnknownTime); virtual bool writeFile (const QString& name, const QString& user, const QString& group, const char* data, qint64 size, mode_t perm = 0100644, time_t atime = UnknownTime, time_t mtime = UnknownTime, time_t ctime = UnknownTime); virtual bool prepareWriting (const QString& name, const QString& user, const QString& group, qint64 size, mode_t perm = 0100644, time_t atime = UnknownTime, time_t mtime = UnknownTime, time_t ctime = UnknownTime); virtual bool writeData (const char* data, qint64 size); virtual bool finishWriting (qint64 size); protected: virtual bool openArchive (QIODevice::OpenMode mode)=0; virtual bool closeArchive ()=0; virtual KArchiveDirectory* rootDir (); virtual bool doWriteDir (const QString& name, const QString& user, const QString& group, mode_t perm, time_t atime, time_t mtime, time_t ctime)=0; virtual bool doWriteSymLink (const QString& name, const QString& target, const QString& user, const QString& group, mode_t perm, time_t atime, time_t mtime, time_t ctime)=0; virtual bool doPrepareWriting (const QString& name, const QString& user, const QString& group, qint64 size, mode_t perm, time_t atime, time_t mtime, time_t ctime)=0; virtual bool doFinishWriting (qint64 size)=0; KArchiveDirectory* findOrCreate (const QString& path); virtual bool createDevice (QIODevice::OpenMode mode); void setDevice (QIODevice* dev); void setRootDir (KArchiveDirectory* rootDir); private: //force KArchive (const KArchive& other); //end public: ~KArchive (); }; // KArchive class KArchiveEntry { %TypeHeaderCode #include %End public: KArchiveEntry (KArchive* archive, const QString& name, int access, int date, const QString& user, const QString& group, const QString& symlink); QDateTime datetime () const; int date () const; QString name () const; mode_t permissions () const; QString user () const; QString group () const; QString symLinkTarget () const; virtual bool isFile () const; virtual bool isDirectory () const; protected: KArchive* archive () const; private: //force KArchiveEntry (const KArchiveEntry& other); //end public: ~KArchiveEntry (); }; // KArchiveEntry class KArchiveFile : KArchiveEntry { %TypeHeaderCode #include %End public: KArchiveFile (KArchive* archive, const QString& name, int access, int date, const QString& user, const QString& group, const QString& symlink, qint64 pos, qint64 size); qint64 position () const; qint64 size () const; void setSize (qint64 s); virtual QByteArray data () const; virtual QIODevice* createDevice () const; virtual bool isFile () const; void copyTo (const QString& dest) const; protected: private: //force KArchiveFile (const KArchiveFile& other); //end public: ~KArchiveFile (); }; // KArchiveFile class KArchiveDirectory : KArchiveEntry { %TypeHeaderCode #include %End public: KArchiveDirectory (KArchive* archive, const QString& name, int access, int date, const QString& user, const QString& group, const QString& symlink); QStringList entries () const; const KArchiveEntry* entry (const QString& name) const; void addEntry (KArchiveEntry*); virtual bool isDirectory () const; void copyTo (const QString& dest, bool recursive = 1) const; protected: private: //force KArchiveDirectory (const KArchiveDirectory& other); // Subclasses of KArchiveEntry //end %ConvertToSubClassCode // CTSCC for subclasses of 'KArchiveEntry' sipType = NULL; if (dynamic_cast(sipCpp)) sipType = sipType_KArchiveDirectory; else if (dynamic_cast(sipCpp)) { sipType = sipType_KArchiveFile; if (dynamic_cast(sipCpp)) sipType = sipType_KZipFileEntry; } %End public: ~KArchiveDirectory (); }; // KArchiveDirectory