• 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
34class KArchiveDirectory;
35class KArchiveFile;
36
42class TDEIO_EXPORT KArchive
43{
44protected:
50 KArchive( TQIODevice * dev );
51
52public:
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
278protected:
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
319private:
320 TQIODevice * m_dev;
321 bool m_open;
322 char m_mode;
323protected:
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 };
383private:
384 class KArchivePrivate;
385 KArchivePrivate * d;
386};
387
395class TDEIO_EXPORT KArchiveEntry
396{
397public:
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
466protected:
467 KArchive* archive() const { return m_archive; }
468
469private:
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;
477protected:
478 virtual void virtual_hook( int id, void* data );
479private:
480 class KArchiveEntryPrivate* d;
481};
482
490class TDEIO_EXPORT KArchiveFile : public KArchiveEntry
491{
492public:
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
557private:
558 int m_pos; // TODO use TQ_LONG in KDE-4.0
559 int m_size; // TODO use TQ_LONG in KDE-4.0
560protected:
561 virtual void virtual_hook( int id, void* data );
562private:
563 class KArchiveFilePrivate* d;
564};
565
573class TDEIO_EXPORT KArchiveDirectory : public KArchiveEntry
574{
575public:
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
631private:
632 TQDict<KArchiveEntry> m_entries;
633protected:
634 virtual void virtual_hook( int id, void* data );
635private:
636 class KArchiveDirectoryPrivate* d;
637};
638
639#endif
KArchiveDirectory
Represents a directory entry in a KArchive.
Definition: karchive.h:574
KArchiveDirectory::isDirectory
virtual bool isDirectory() const
Checks whether this entry is a directory.
Definition: karchive.h:620
KArchiveEntry
A base class for entries in an KArchive.
Definition: karchive.h:396
KArchiveEntry::isDirectory
virtual bool isDirectory() const
Checks whether the entry is a directory.
Definition: karchive.h:464
KArchiveEntry::date
int date() const
Creation date of the file.
Definition: karchive.h:424
KArchiveEntry::permissions
mode_t permissions() const
The permissions and mode flags as returned by the stat() function in st_mode.
Definition: karchive.h:436
KArchiveEntry::group
TQString group() const
Group of the user who created the file.
Definition: karchive.h:446
KArchiveEntry::user
TQString user() const
User who created the file.
Definition: karchive.h:441
KArchiveEntry::isFile
virtual bool isFile() const
Checks whether the entry is a file.
Definition: karchive.h:458
KArchiveEntry::name
TQString name() const
Name of the file without path.
Definition: karchive.h:430
KArchiveEntry::symlink
TQString symlink() const
Symlink if there is one.
Definition: karchive.h:452
KArchiveFile
Represents a file entry in a KArchive.
Definition: karchive.h:491
KArchiveFile::setSize
void setSize(int s)
Set size of data, usually after writing the file.
Definition: karchive.h:525
KArchiveFile::isFile
virtual bool isFile() const
Checks whether this entry is a file.
Definition: karchive.h:548
KArchive
KArchive is a base class for reading and writing archives.
Definition: karchive.h:43
KArchive::writeDir
virtual bool writeDir(const TQString &name, const TQString &user, const TQString &group)=0
If an archive is opened for writing then you can add new directories using this function.
KArchive::closeArchive
virtual bool closeArchive()=0
Closes the archive.
KArchive::mode
int mode() const
Returns the mode in which the archive was opened.
Definition: karchive.h:90
KArchive::device
TQIODevice * device() const
The underlying device.
Definition: karchive.h:96
KArchive::doneWriting
virtual bool doneWriting(uint size)=0
Call doneWriting after writing the data.
KArchive::openArchive
virtual bool openArchive(int mode)=0
Opens an archive for reading or writing.
KArchive::isOpened
bool isOpened() const
Checks whether the archive is open.
Definition: karchive.h:83
KArchive::prepareWriting
virtual bool prepareWriting(const TQString &name, const TQString &user, const TQString &group, uint size)=0
Here's another way of writing a file into an archive: Call prepareWriting, then call writeData() as m...

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
  • tdeabc
  • tdecmshell
  • tdecore
  • tdefx
  • tdehtml
  • tdeinit
  • tdeio
  •   bookmarks
  •   httpfilter
  •   kpasswdserver
  •   kssl
  •   tdefile
  •   tdeio
  •   tdeioexec
  • tdeioslave
  •   http
  • tdemdi
  •   tdemdi
  • tdenewstuff
  • tdeparts
  • tdeprint
  • tderandr
  • tderesources
  • tdespell2
  • tdesu
  • tdeui
  • tdeunittest
  • tdeutils
  • tdewallet
Generated for tdeio/tdeio by doxygen 1.9.4
This website is maintained by Timothy Pearson.