25 #include <sys/types.h>
27 #include <QtCore/QDate>
28 #include <QtCore/QString>
29 #include <QtCore/QStringList>
30 #include <QtCore/QHash>
37 class KArchivePrivate;
72 virtual bool open( QIODevice::OpenMode mode );
94 QIODevice::OpenMode mode()
const;
107 QString fileName()
const;
126 bool addLocalFile(
const QString& fileName,
const QString& destName );
139 bool addLocalDirectory(
const QString& path,
const QString& destName );
141 enum { UnknownTime =
static_cast<time_t
>( -1 ) };
158 virtual bool writeDir(
const QString& name,
const QString& user,
const QString&
group,
159 mode_t perm = 040755, time_t atime = UnknownTime,
160 time_t mtime = UnknownTime, time_t ctime = UnknownTime );
175 virtual bool writeSymLink(
const QString &name,
const QString &target,
176 const QString &user,
const QString &
group,
177 mode_t perm = 0120755, time_t atime = UnknownTime,
178 time_t mtime = UnknownTime, time_t ctime = UnknownTime );
199 virtual bool writeFile(
const QString& name,
const QString& user,
const QString&
group,
200 const char* data, qint64 size,
201 mode_t perm = 0100644, time_t atime = UnknownTime,
202 time_t mtime = UnknownTime, time_t ctime = UnknownTime );
223 virtual bool prepareWriting(
const QString& name,
const QString& user,
224 const QString&
group, qint64 size,
225 mode_t perm = 0100644, time_t atime = UnknownTime,
226 time_t mtime = UnknownTime, time_t ctime = UnknownTime );
231 virtual bool writeData(
const char* data, qint64 size );
238 virtual bool finishWriting( qint64 size );
278 virtual bool doWriteDir(
const QString& name,
const QString& user,
const QString&
group,
279 mode_t perm, time_t atime, time_t mtime, time_t ctime ) = 0;
296 const QString &user,
const QString &
group,
297 mode_t perm, time_t atime, time_t mtime, time_t ctime) = 0;
315 const QString&
group, qint64 size, mode_t perm,
316 time_t atime, time_t mtime, time_t ctime ) = 0;
341 virtual bool createDevice( QIODevice::OpenMode mode );
356 virtual void virtual_hook(
int id,
void* data );
358 KArchivePrivate*
const d;
361 class KArchiveEntryPrivate;
383 const QString& user,
const QString&
group,
384 const QString& symlink );
392 QDateTime datetime()
const;
404 QString name()
const;
410 mode_t permissions()
const;
415 QString user()
const;
420 QString
group()
const;
426 QString symLinkTarget()
const;
432 virtual bool isFile()
const;
438 virtual bool isDirectory()
const;
444 virtual void virtual_hook(
int id,
void* data );
446 KArchiveEntryPrivate*
const d;
449 class KArchiveFilePrivate;
473 const QString& user,
const QString&
group,
const QString &symlink,
474 qint64 pos, qint64 size );
485 qint64 position()
const;
495 void setSize( qint64 s );
502 virtual QByteArray data()
const;
520 virtual bool isFile()
const;
526 void copyTo(
const QString& dest)
const;
529 virtual void virtual_hook(
int id,
void* data );
531 KArchiveFilePrivate*
const d;
534 class KArchiveDirectoryPrivate;
556 const QString& user,
const QString&
group,
557 const QString& symlink);
568 QStringList entries()
const;
592 virtual bool isDirectory()
const;
600 void copyTo(
const QString& dest,
bool recursive =
true)
const;
603 virtual void virtual_hook(
int id,
void* data );
605 KArchiveDirectoryPrivate*
const d;
Represents a directory entry in a KArchive.
A base class for entries in an KArchive.
Represents a file entry in a KArchive.
KArchive is a base class for reading and writing archives.
virtual bool doFinishWriting(qint64 size)=0
Called after writing the data.
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
Write a directory to the archive.
virtual bool closeArchive()=0
Closes the archive.
virtual bool openArchive(QIODevice::OpenMode mode)=0
Opens an archive for reading or writing.
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
Writes a symbolic link to the archive.
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
This virtual method must be implemented by subclasses.
int open(const QString &pathname, int flags, mode_t mode)
int access(const QString &path, int mode)