• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdelibs API Reference
  • KDE Home
  • Contact Us
 

KDECore

  • sources
  • kde-4.12
  • kdelibs
  • kdecore
  • io
karchive.h
Go to the documentation of this file.
1 /* This file is part of the KDE libraries
2  Copyright (C) 2000-2005 David Faure <faure@kde.org>
3  Copyright (C) 2003 Leo Savernik <l.savernik@aon.at>
4 
5  Moved from ktar.h by Roberto Teixeira <maragato@kde.org>
6 
7  This library is free software; you can redistribute it and/or
8  modify it under the terms of the GNU Library General Public
9  License version 2 as published by the Free Software Foundation.
10 
11  This library is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14  Library General Public License for more details.
15 
16  You should have received a copy of the GNU Library General Public License
17  along with this library; see the file COPYING.LIB. If not, write to
18  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
19  Boston, MA 02110-1301, USA.
20 */
21 #ifndef KARCHIVE_H
22 #define KARCHIVE_H
23 
24 #include <sys/stat.h>
25 #include <sys/types.h>
26 
27 #include <QtCore/QDate>
28 #include <QtCore/QString>
29 #include <QtCore/QStringList>
30 #include <QtCore/QHash>
31 
32 #include <kdecore_export.h>
33 
34 class KArchiveDirectory;
35 class KArchiveFile;
36 
37 class KArchivePrivate;
43 class KDECORE_EXPORT KArchive
44 {
45 protected:
52  KArchive( const QString& fileName );
53 
61  KArchive( QIODevice * dev );
62 
63 public:
64  virtual ~KArchive();
65 
72  virtual bool open( QIODevice::OpenMode mode );
73 
81  virtual bool close();
82 
87  bool isOpen() const;
88 
94  QIODevice::OpenMode mode() const;
95 
100  QIODevice * device() const;
101 
107  QString fileName() const;
108 
114  const KArchiveDirectory* directory() const;
115 
126  bool addLocalFile( const QString& fileName, const QString& destName );
127 
139  bool addLocalDirectory( const QString& path, const QString& destName );
140 
141  enum { UnknownTime = static_cast<time_t>( -1 ) };
142 
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 );
161 
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 );
179 
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 );
203 
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 );
227 
231  virtual bool writeData( const char* data, qint64 size );
232 
238  virtual bool finishWriting( qint64 size );
239 
240 protected:
246  virtual bool openArchive( QIODevice::OpenMode mode ) = 0;
247 
252  virtual bool closeArchive() = 0;
253 
261  virtual KArchiveDirectory* rootDir();
262 
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;
280 
295  virtual bool doWriteSymLink(const QString &name, const QString &target,
296  const QString &user, const QString &group,
297  mode_t perm, time_t atime, time_t mtime, time_t ctime) = 0;
298 
314  virtual bool doPrepareWriting( const QString& name, const QString& user,
315  const QString& group, qint64 size, mode_t perm,
316  time_t atime, time_t mtime, time_t ctime ) = 0;
317 
325  virtual bool doFinishWriting( qint64 size ) = 0;
326 
333  KArchiveDirectory * findOrCreate( const QString & path );
334 
341  virtual bool createDevice( QIODevice::OpenMode mode );
342 
347  void setDevice( QIODevice *dev );
348 
353  void setRootDir( KArchiveDirectory *rootDir );
354 
355 protected:
356  virtual void virtual_hook( int id, void* data );
357 private:
358  KArchivePrivate* const d;
359 };
360 
361 class KArchiveEntryPrivate;
369 class KDECORE_EXPORT KArchiveEntry
370 {
371 public:
382  KArchiveEntry( KArchive* archive, const QString& name, int access, int date,
383  const QString& user, const QString& group,
384  const QString& symlink );
385 
386  virtual ~KArchiveEntry();
387 
392  QDateTime datetime() const;
393 
398  int date() const;
399 
404  QString name() const;
410  mode_t permissions() const;
415  QString user() const;
420  QString group() const;
421 
426  QString symLinkTarget() const;
427 
432  virtual bool isFile() const;
433 
438  virtual bool isDirectory() const;
439 
440 protected:
441  KArchive* archive() const;
442 
443 protected:
444  virtual void virtual_hook( int id, void* data );
445 private:
446  KArchiveEntryPrivate* const d;
447 };
448 
449 class KArchiveFilePrivate;
457 class KDECORE_EXPORT KArchiveFile : public KArchiveEntry
458 {
459 public:
472  KArchiveFile( KArchive* archive, const QString& name, int access, int date,
473  const QString& user, const QString& group, const QString &symlink,
474  qint64 pos, qint64 size );
475 
479  virtual ~KArchiveFile();
480 
485  qint64 position() const;
490  qint64 size() const;
495  void setSize( qint64 s );
496 
502  virtual QByteArray data() const;
503 
514  virtual QIODevice *createDevice() const;
515 
520  virtual bool isFile() const;
521 
526  void copyTo(const QString& dest) const;
527 
528 protected:
529  virtual void virtual_hook( int id, void* data );
530 private:
531  KArchiveFilePrivate* const d;
532 };
533 
534 class KArchiveDirectoryPrivate;
542 class KDECORE_EXPORT KArchiveDirectory : public KArchiveEntry
543 {
544 public:
555  KArchiveDirectory( KArchive* archive, const QString& name, int access, int date,
556  const QString& user, const QString& group,
557  const QString& symlink);
558 
559  virtual ~KArchiveDirectory();
560 
568  QStringList entries() const;
574  const KArchiveEntry* entry( const QString& name ) const;
575 
580  void addEntry( KArchiveEntry* );
581 
586  void removeEntry( KArchiveEntry* );
587 
592  virtual bool isDirectory() const;
593 
600  void copyTo(const QString& dest, bool recursive = true) const;
601 
602 protected:
603  virtual void virtual_hook( int id, void* data );
604 private:
605  KArchiveDirectoryPrivate* const d;
606 };
607 
608 #endif
qint64
KArchiveEntry::isDirectory
virtual bool isDirectory() const
Checks whether the entry is a directory.
Definition: karchive.cpp:581
kdecore_export.h
KMacroExpander::group
Definition: kmacroexpander_unix.cpp:34
KArchive
KArchive is a base class for reading and writing archives.
Definition: karchive.h:43
QString
KDE::open
int open(const QString &pathname, int flags, mode_t mode)
Definition: kde_file_win.cpp:158
QStringList
KArchiveEntry
A base class for entries in an KArchive.
Definition: karchive.h:369
QDateTime
KArchiveDirectory
Represents a directory entry in a KArchive.
Definition: karchive.h:542
KDE::access
int access(const QString &path, int mode)
Definition: kde_file_win.cpp:123
KArchiveFile
Represents a file entry in a KArchive.
Definition: karchive.h:457
QIODevice
KArchiveEntry::isFile
virtual bool isFile() const
Checks whether the entry is a file.
Definition: karchive.cpp:576
KArchiveEntry::virtual_hook
virtual void virtual_hook(int id, void *data)
Definition: karchive.cpp:863
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:47:07 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

KDECore

Skip menu "KDECore"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Modules
  • Related Pages

kdelibs API Reference

Skip menu "kdelibs API Reference"
  • DNSSD
  • Interfaces
  •   KHexEdit
  •   KMediaPlayer
  •   KSpeech
  •   KTextEditor
  • kconf_update
  • KDE3Support
  •   KUnitTest
  • KDECore
  • KDED
  • KDEsu
  • KDEUI
  • KDEWebKit
  • KDocTools
  • KFile
  • KHTML
  • KImgIO
  • KInit
  • kio
  • KIOSlave
  • KJS
  •   KJS-API
  • kjsembed
  •   WTF
  • KNewStuff
  • KParts
  • KPty
  • Kross
  • KUnitConversion
  • KUtils
  • Nepomuk
  • Nepomuk-Core
  • Nepomuk
  • Plasma
  • Solid
  • Sonnet
  • ThreadWeaver

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal