Files
RedBear-OS/local/recipes/kde/kf6-karchive/source/src/kar.h
T
2026-04-14 10:51:06 +01:00

104 lines
3.0 KiB
C++

/* This file is part of the KDE libraries
SPDX-FileCopyrightText: 2002 Laurence Anderson <l.d.anderson@warwick.ac.uk>
SPDX-License-Identifier: LGPL-2.0-or-later
*/
#ifndef KAR_H
#define KAR_H
#include <karchive.h>
/**
* @class KAr kar.h KAr
*
* KAr is a class for reading archives in ar format. Writing
* is not supported. Reading archives that contain files bigger than
* INT_MAX - 32 bytes is not supported.
* @short A class for reading ar archives.
* @author Laurence Anderson <l.d.anderson@warwick.ac.uk>
*/
class KARCHIVE_EXPORT KAr : public KArchive
{
Q_DECLARE_TR_FUNCTIONS(KAr)
public:
/**
* Creates an instance that operates on the given filename.
*
* @param filename is a local path (e.g. "/home/holger/myfile.ar")
*/
explicit KAr(const QString &filename);
/**
* Creates an instance that operates on the given device.
* The device can be compressed (KCompressionDevice) or not (QFile, etc.).
* @param dev the device to read from
*/
explicit KAr(QIODevice *dev);
/**
* If the ar file is still opened, then it will be
* closed automatically by the destructor.
*/
~KAr() override;
protected:
/*
* Writing is not supported by this class, will always fail.
* @return always false
*/
bool doPrepareWriting(const QString &name,
const QString &user,
const QString &group,
qint64 size,
mode_t perm,
const QDateTime &atime,
const QDateTime &mtime,
const QDateTime &ctime) override;
/*
* Writing is not supported by this class, will always fail.
* @return always false
*/
bool doFinishWriting(qint64 size) override;
/*
* Writing is not supported by this class, will always fail.
* @return always false
*/
bool doWriteDir(const QString &name,
const QString &user,
const QString &group,
mode_t perm,
const QDateTime &atime,
const QDateTime &mtime,
const QDateTime &ctime) override;
bool doWriteSymLink(const QString &name,
const QString &target,
const QString &user,
const QString &group,
mode_t perm,
const QDateTime &atime,
const QDateTime &mtime,
const QDateTime &ctime) override;
/**
* Opens the archive for reading.
* Parses the directory listing of the archive
* and creates the KArchiveDirectory/KArchiveFile entries.
*
*/
bool openArchive(QIODevice::OpenMode mode) override;
bool closeArchive() override;
protected:
void virtual_hook(int id, void *data) override;
private:
class KArPrivate;
KArPrivate *const d;
};
#endif