mirror of
https://bitbucket.org/smil3y/kde-playground.git
synced 2025-02-24 02:42:51 +00:00
195 lines
6.6 KiB
Text
195 lines
6.6 KiB
Text
//
|
|
// Copyright 2008 Jim Bublitz <jbublitz@nwinternet.com>
|
|
// 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 <http://www.gnu.org/licenses/>.
|
|
|
|
|
|
|
|
|
|
|
|
%ModuleHeaderCode
|
|
//ctscc
|
|
#include <karchive.h>
|
|
#include <kzip.h>
|
|
%End
|
|
|
|
class KArchive
|
|
{
|
|
%TypeHeaderCode
|
|
#include <karchive.h>
|
|
%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 <karchive.h>
|
|
%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 <karchive.h>
|
|
%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 <karchive.h>
|
|
%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<KArchiveDirectory*>(sipCpp))
|
|
sipType = sipType_KArchiveDirectory;
|
|
else if (dynamic_cast<KArchiveFile*>(sipCpp))
|
|
{
|
|
sipType = sipType_KArchiveFile;
|
|
if (dynamic_cast<KZipFileEntry*>(sipCpp))
|
|
sipType = sipType_KZipFileEntry;
|
|
}
|
|
%End
|
|
|
|
public:
|
|
~KArchiveDirectory ();
|
|
};
|
|
// KArchiveDirectory
|
|
|
|
|
|
|
|
|