• Skip to content
  • Skip to link menu
Trinity API Reference
  • Trinity API Reference
  • tdeio/tdeio
 

tdeio/tdeio

  • tdeio
  • tdeio
karchive.h
1 /* This file is part of the KDE libraries
2  Copyright (C) 2000 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 <tqdatetime.h>
28 #include <tqstring.h>
29 #include <tqstringlist.h>
30 #include <tqdict.h>
31 
32 #include <tdelibs_export.h>
33 
34 class KArchiveDirectory;
35 class KArchiveFile;
36 
42 class TDEIO_EXPORT KArchive
43 {
44 protected:
50  KArchive( TQIODevice * dev );
51 
52 public:
53  virtual ~KArchive();
54 
61  virtual bool open( int mode );
62 
69  virtual void close();
70 
76  // TODO KDE4 merge with above
77  bool closeSucceeded() const;
78 
83  bool isOpened() const { return m_open; }
84 
90  int mode() const { return m_mode; }
91 
96  TQIODevice * device() const { return m_dev; }
97 
103  const KArchiveDirectory* directory() const;
104 
115  bool addLocalFile( const TQString& fileName, const TQString& destName );
116 
128  bool addLocalDirectory( const TQString& path, const TQString& destName );
129 
142  virtual bool writeDir( const TQString& name, const TQString& user, const TQString& group ) = 0;
143 
161  bool writeDir( const TQString& name, const TQString& user, const TQString& group,
162  mode_t perm, time_t atime, time_t mtime, time_t ctime );
163 
178  bool writeSymLink(const TQString &name, const TQString &target,
179  const TQString &user, const TQString &group,
180  mode_t perm, time_t atime, time_t mtime, time_t ctime);
181 
195  virtual bool writeFile( const TQString& name, const TQString& user, const TQString& group, uint size, const char* data );
196 
218  bool writeFile( const TQString& name, const TQString& user, const TQString& group,
219  uint size, mode_t perm, time_t atime, time_t mtime,
220  time_t ctime, const char* data );
221 
238  virtual bool prepareWriting( const TQString& name, const TQString& user, const TQString& group, uint size ) = 0;
239 
261  bool prepareWriting( const TQString& name, const TQString& user,
262  const TQString& group, uint size, mode_t perm,
263  time_t atime, time_t mtime, time_t ctime );
264 
269  bool writeData( const char* data, uint size );
270 
276  virtual bool doneWriting( uint size ) = 0;
277 
278 protected:
284  virtual bool openArchive( int mode ) = 0;
285 
290  virtual bool closeArchive() = 0;
291 
299  virtual KArchiveDirectory* rootDir();
300 
307  KArchiveDirectory * findOrCreate( const TQString & path );
308 
312  void setDevice( TQIODevice *dev );
313 
317  void setRootDir( KArchiveDirectory *rootDir );
318 
319 private:
320  TQIODevice * m_dev;
321  bool m_open;
322  char m_mode;
323 protected:
324  virtual void virtual_hook( int id, void* data );
325  /* @internal for virtual_hook */
326  enum { VIRTUAL_WRITE_DATA = 1, VIRTUAL_WRITE_SYMLINK, VIRTUAL_WRITE_DIR,
327  VIRTUAL_WRITE_FILE, VIRTUAL_PREPARE_WRITING };
328  bool prepareWriting_impl( const TQString& name, const TQString& user,
329  const TQString& group, uint size, mode_t perm,
330  time_t atime, time_t mtime, time_t ctime );
331  struct PrepareWritingParams {
332  const TQString *name;
333  const TQString *user;
334  const TQString *group;
335  uint size;
336  mode_t perm;
337  time_t atime, mtime, ctime;
338  bool retval;
339  };
340  bool writeFile_impl( const TQString& name, const TQString& user,
341  const TQString& group, uint size, mode_t perm,
342  time_t atime, time_t mtime, time_t ctime,
343  const char* data );
344  struct WriteFileParams {
345  const TQString *name;
346  const TQString *user;
347  const TQString *group;
348  uint size;
349  mode_t perm;
350  time_t atime, mtime, ctime;
351  const char *data;
352  bool retval;
353  };
354  bool writeDir_impl(const TQString& name, const TQString& user,
355  const TQString& group, mode_t perm,
356  time_t atime, time_t mtime, time_t ctime);
357  struct WriteDirParams {
358  const TQString *name;
359  const TQString *user;
360  const TQString *group;
361  mode_t perm;
362  time_t atime, mtime, ctime;
363  bool retval;
364  };
365  bool writeSymLink_impl(const TQString &name, const TQString &target,
366  const TQString &user, const TQString &group,
367  mode_t perm, time_t atime, time_t mtime, time_t ctime);
368  struct WriteSymlinkParams {
369  const TQString *name;
370  const TQString *target;
371  const TQString *user;
372  const TQString *group;
373  mode_t perm;
374  time_t atime, mtime, ctime;
375  bool retval;
376  };
377  bool writeData_impl( const char* data, uint size );
378  struct WriteDataParams {
379  const char* data;
380  uint size;
381  bool retval;
382  };
383 private:
384  class KArchivePrivate;
385  KArchivePrivate * d;
386 };
387 
395 class TDEIO_EXPORT KArchiveEntry
396 {
397 public:
408  KArchiveEntry( KArchive* archive, const TQString& name, int access, int date,
409  const TQString& user, const TQString& group,
410  const TQString &symlink );
411 
412  virtual ~KArchiveEntry() { }
413 
418  TQDateTime datetime() const;
419 
424  int date() const { return m_date; }
425 
430  TQString name() const { return m_name; }
436  mode_t permissions() const { return m_access; }
441  TQString user() const { return m_user; }
446  TQString group() const { return m_group; }
447 
452  TQString symlink() const { return m_symlink; }
453 
458  virtual bool isFile() const { return false; }
459 
464  virtual bool isDirectory() const { return false; }
465 
466 protected:
467  KArchive* archive() const { return m_archive; }
468 
469 private:
470  TQString m_name;
471  int m_date;
472  mode_t m_access;
473  TQString m_user;
474  TQString m_group;
475  TQString m_symlink;
476  KArchive* m_archive;
477 protected:
478  virtual void virtual_hook( int id, void* data );
479 private:
480  class KArchiveEntryPrivate* d;
481 };
482 
490 class TDEIO_EXPORT KArchiveFile : public KArchiveEntry
491 {
492 public:
505  KArchiveFile( KArchive* archive, const TQString& name, int access, int date,
506  const TQString& user, const TQString& group, const TQString &symlink,
507  int pos, int size );
508 
509  virtual ~KArchiveFile() { }
510 
515  int position() const; // TODO use TQ_LONG in KDE-4.0
520  int size() const; // TODO use TQ_LONG in KDE-4.0
525  void setSize( int s ) { m_size = s; }
526 
532  virtual TQByteArray data() const;
533 
542  TQIODevice *device() const; // TODO make virtual
543 
548  virtual bool isFile() const { return true; }
549 
555  void copyTo(const TQString& dest) const;
556 
557 private:
558  int m_pos; // TODO use TQ_LONG in KDE-4.0
559  int m_size; // TODO use TQ_LONG in KDE-4.0
560 protected:
561  virtual void virtual_hook( int id, void* data );
562 private:
563  class KArchiveFilePrivate* d;
564 };
565 
573 class TDEIO_EXPORT KArchiveDirectory : public KArchiveEntry
574 {
575 public:
586  KArchiveDirectory( KArchive* archive, const TQString& name, int access, int date,
587  const TQString& user, const TQString& group,
588  const TQString& symlink);
589 
590  virtual ~KArchiveDirectory() { }
591 
596  TQStringList entries() const;
602  KArchiveEntry* entry( TQString name );
608  const KArchiveEntry* entry( TQString name ) const;
609 
614  void addEntry( KArchiveEntry* );
615 
620  virtual bool isDirectory() const { return true; }
621 
629  void copyTo(const TQString& dest, bool recursive = true) const;
630 
631 private:
632  TQDict<KArchiveEntry> m_entries;
633 protected:
634  virtual void virtual_hook( int id, void* data );
635 private:
636  class KArchiveDirectoryPrivate* d;
637 };
638 
639 #endif
KArchive
KArchive is a base class for reading and writing archives.
Definition: karchive.h:42
KArchiveFile::isFile
virtual bool isFile() const
Checks whether this entry is a file.
Definition: karchive.h:548
KArchiveEntry::group
TQString group() const
Group of the user who created the file.
Definition: karchive.h:446
KArchive::device
TQIODevice * device() const
The underlying device.
Definition: karchive.h:96
KArchiveEntry::user
TQString user() const
User who created the file.
Definition: karchive.h:441
KArchiveEntry::name
TQString name() const
Name of the file without path.
Definition: karchive.h:430
KArchiveEntry
A base class for entries in an KArchive.
Definition: karchive.h:395
KArchive::mode
int mode() const
Returns the mode in which the archive was opened.
Definition: karchive.h:90
KArchiveDirectory::isDirectory
virtual bool isDirectory() const
Checks whether this entry is a directory.
Definition: karchive.h:620
KArchiveDirectory
Represents a directory entry in a KArchive.
Definition: karchive.h:573
KArchiveEntry::date
int date() const
Creation date of the file.
Definition: karchive.h:424
KArchiveEntry::symlink
TQString symlink() const
Symlink if there is one.
Definition: karchive.h:452
KArchive::isOpened
bool isOpened() const
Checks whether the archive is open.
Definition: karchive.h:83
KArchiveFile
Represents a file entry in a KArchive.
Definition: karchive.h:490
KArchiveEntry::isFile
virtual bool isFile() const
Checks whether the entry is a file.
Definition: karchive.h:458
KArchiveEntry::permissions
mode_t permissions() const
The permissions and mode flags as returned by the stat() function in st_mode.
Definition: karchive.h:436
KArchiveFile::setSize
void setSize(int s)
Set size of data, usually after writing the file.
Definition: karchive.h:525
KArchiveEntry::isDirectory
virtual bool isDirectory() const
Checks whether the entry is a directory.
Definition: karchive.h:464

tdeio/tdeio

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

tdeio/tdeio

Skip menu "tdeio/tdeio"
  • arts
  • dcop
  • dnssd
  • interfaces
  •   kspeech
  •     interface
  •     library
  •   tdetexteditor
  • kate
  • kded
  • kdoctools
  • kimgio
  • kjs
  • libtdemid
  • libtdescreensaver
  •     tdecore
  • tdeabc
  • tdecmshell
  • tdecore
  • tdefx
  • tdehtml
  • tdeinit
  • tdeio
  •   bookmarks
  •   httpfilter
  •   kpasswdserver
  •   kssl
  • tdeioslave
  •   http
  •   tdefile
  •   tdeio
  •   tdeioexec
  • tdemdi
  •   tdemdi
  • tdenewstuff
  • tdeparts
  • tdeprint
  • tderandr
  • tderesources
  • tdespell2
  • tdesu
  • tdeui
  • tdeunittest
  • tdeutils
  • tdewallet
Generated for tdeio/tdeio by doxygen 1.8.8
This website is maintained by Timothy Pearson.