//
//     Copyright 2006 Jim Bublitz <jbublitz@nwinternet.com>
//     Earlier copyrights 1998 - 2005 Jim Bublitz and/or Phil Thompson
//     may also apply


//                 Generated by preSip
//            module tdeio  version KDE 3.5.3


// This software is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License as
// published by the Free Software Foundation; either version 2 of
// the License, or (at your option) any later version.
//
// This software is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public
// License along with this library; see the file COPYING.
// If not, write to the Free Software Foundation, Inc.,
// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.


class KArchive
{
%TypeHeaderCode
#include <karchive.h>
%End


protected:
                         KArchive (TQIODevice*);

public:
    virtual bool         open (int);
    virtual void         close ();

%If ( KDE_3_5_0 -  )
    bool                 closeSucceeded () const;
%End

    bool                 isOpened () const;
    int                  mode () const;
    TQIODevice*           device () const;
    const KArchiveDirectory* directory () const;

%If ( KDE_3_2_0 -  )
    bool                 addLocalFile (const TQString&, const TQString&);
    bool                 addLocalDirectory (const TQString&, const TQString&);
%End

    virtual bool         writeDir (const TQString&, const TQString&, const TQString&)  = 0;

%If ( KDE_3_2_0 -  )
    bool                 writeDir (const TQString&, const TQString&, const TQString&, mode_t, time_t, time_t, time_t);
    bool                 writeSymLink (const TQString&, const TQString&, const TQString&, const TQString&, mode_t, time_t, time_t, time_t);
%End

    virtual bool         writeFile (const TQString&, const TQString&, const TQString&, uint, const char*);

%If ( KDE_3_2_0 -  )
    bool                 writeFile (const TQString&, const TQString&, const TQString&, uint, mode_t, time_t, time_t, time_t, const char*);
%End

    virtual bool         prepareWriting (const TQString&, const TQString&, const TQString&, uint)  = 0;

%If ( KDE_3_2_0 -  )
    bool                 prepareWriting (const TQString&, const TQString&, const TQString&, uint, mode_t, time_t, time_t, time_t);
    bool                 writeData (const char*, uint);
%End

    virtual bool         doneWriting (uint)  = 0;

protected:
    virtual bool         openArchive (int)  = 0;
    virtual bool         closeArchive ()  = 0;
    virtual KArchiveDirectory* rootDir ();
    KArchiveDirectory*   findOrCreate (const TQString&);
    void                 setDevice (TQIODevice*);
    void                 setRootDir (KArchiveDirectory*);

protected:
//igx     virtual void         virtual_hook (int, void*);

%If ( KDE_3_2_0 -  )
    bool                 prepareWriting_impl (const TQString&, const TQString&, const TQString&, uint, mode_t, time_t, time_t, time_t);
    bool                 writeFile_impl (const TQString&, const TQString&, const TQString&, uint, mode_t, time_t, time_t, time_t, const char*);
    bool                 writeDir_impl (const TQString&, const TQString&, const TQString&, mode_t, time_t, time_t, time_t);
    bool                 writeSymLink_impl (const TQString&, const TQString&, const TQString&, const TQString&, mode_t, time_t, time_t, time_t);
    bool                 writeData_impl (const char*, uint);
%End


protected:

%If (  - KDE_3_1_0 )
                         ~KArchive ();
%End


};  // class KArchive


class KArchiveEntry
{
%TypeHeaderCode
#include <karchive.h>
%End


public:
                         KArchiveEntry (KArchive*, const TQString&, int, int, const TQString&, const TQString&, const TQString&);
    TQDateTime            datetime () const;
    int                  date () const;
    TQString              name () const;
    mode_t               permissions () const;
    TQString              user () const;
    TQString              group () const;
    TQString              symlink () const;
    virtual bool         isFile () const;
    virtual bool         isDirectory () const;

protected:
    KArchive*            archive () const;

protected:
//igx     virtual void         virtual_hook (int, void*);

};  // class KArchiveEntry


class KArchiveFile : KArchiveEntry
{
%TypeHeaderCode
#include <karchive.h>
%End


public:
                         KArchiveFile (KArchive*, const TQString&, int, int, const TQString&, const TQString&, const TQString&, int, int);
    int                  position () const;
    int                  size () const;

%If ( KDE_3_1_0 -  )
    void                 setSize (int);
%End

    virtual TQByteArray   data () const;
    TQIODevice*           device () const;
    virtual bool         isFile () const;

%If ( KDE_3_1_0 -  )
    void                 copyTo (const TQString&) const;
%End


protected:
//igx     virtual void         virtual_hook (int, void*);

};  // class KArchiveFile


class KArchiveDirectory : KArchiveEntry
{
%TypeHeaderCode
#include <karchive.h>
%End


public:
                         KArchiveDirectory (KArchive*, const TQString&, int, int, const TQString&, const TQString&, const TQString&);
    TQStringList          entries () const;
    KArchiveEntry*       entry (TQString);
    void                 addEntry (KArchiveEntry*);
    virtual bool         isDirectory () const;

%If ( KDE_3_1_0 -  )
    void                 copyTo (const TQString&, bool = 1) const;
%End


protected:
//igx     virtual void         virtual_hook (int, void*);

};  // class KArchiveDirectory

