//
//     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.

namespace TDEIO
{

class SlaveBase
{
%TypeHeaderCode
#include <slavebase.h>
%End


public:
                         SlaveBase (const TQCString&, const TQCString&, const TQCString&);

%If ( KDE_3_1_0 -  )
    void                 exit ();
%End

    void                 dispatchLoop ();
    void                 setConnection (TDEIO::Connection*);
    TDEIO::Connection*     connection () const;
    void                 data (const TQByteArray&);
    void                 dataReq ();
    void                 error (int, const TQString&);
    void                 connected ();
    void                 finished ();
    void                 needSubURLData ();
    void                 slaveStatus (const TQString&, bool);
    void                 statEntry (const TDEIO::UDSEntry&);
    void                 listEntries (const TDEIO::UDSEntryList&);
    bool                 canResume (TDEIO::filesize_t);
    void                 canResume ();
    void                 totalSize (TDEIO::filesize_t);
    void                 processedSize (TDEIO::filesize_t);
    void                 processedPercent (float);
    void                 speed (ulong);
    void                 redirection (const KURL&);
    void                 errorPage ();
    void                 mimeType (const TQString&);
    void                 warning (const TQString&);
    void                 infoMessage (const TQString&);

    enum MessageBoxType
    {
        QuestionYesNo, 
        WarningYesNo, 
        WarningContinueCancel, 
        WarningYesNoCancel, 
        Information, 
        SSLMessageBox
    };

    int                  messageBox (TDEIO::SlaveBase::MessageBoxType, const TQString&, const TQString& = TQString ::null , const TQString& = TQString ::null , const TQString& = TQString ::null );

%If ( KDE_3_3_0 -  )
    int                  messageBox (const TQString&, TDEIO::SlaveBase::MessageBoxType, const TQString& = TQString ::null , const TQString& = TQString ::null , const TQString& = TQString ::null , const TQString& = TQString ::null );
%End

    void                 setMetaData (const TQString&, const TQString&);
    bool                 hasMetaData (const TQString&);
    TQString              metaData (const TQString&);

%If ( KDE_3_5_2 -  )
    TDEIO::MetaData        allMetaData () const;
%End

    TDEConfigBase*         config ();

%If ( KDE_3_3_0 -  )
    KRemoteEncoding*     remoteEncoding ();
%End

    virtual void         setHost (const TQString&, int, const TQString&, const TQString&);
    virtual void         setSubURL (const KURL&);
    virtual void         openConnection ();
    virtual void         closeConnection ();
    virtual void         get (const KURL&);
    virtual void         put (const KURL&, int, bool, bool);
    virtual void         stat (const KURL&);
    virtual void         mimetype (const KURL&);
    virtual void         listDir (const KURL&);
    virtual void         mkdir (const KURL&, int);
    virtual void         rename (const KURL&, const KURL&, bool);
    virtual void         symlink (const TQString&, const KURL&, bool);
    virtual void         chmod (const KURL&, int);
    virtual void         copy (const KURL&, const KURL&, int, bool);
    virtual void         del (const KURL&, bool)  /PyName=del_/;
    virtual void         special (const TQByteArray&);
    virtual void         multiGet (const TQByteArray&);
    virtual void         slave_status ();
    virtual void         reparseConfiguration ();
    int                  connectTimeout ();
    int                  proxyConnectTimeout ();
    int                  responseTimeout ();
    int                  readTimeout ();

%If ( KDE_3_1_0 -  )
    void                 setTimeoutSpecialCommand (int, const TQByteArray& = TQByteArray ());
%End

    static void          sigsegv_handler (int);
    static void          sigpipe_handler (int);
    virtual bool         dispatch ();
    virtual void         dispatch (int, const TQByteArray&);
    int                  readData (TQByteArray&);

%If ( KDE_3_1_0 -  )
    void                 listEntry (const TDEIO::UDSEntry&, bool);
    void                 connectSlave (const TQString&);
    void                 disconnectSlave ();
    bool                 openPassDlg (TDEIO::AuthInfo&, const TQString&);
    bool                 openPassDlg (TDEIO::AuthInfo&);
    bool                 checkCachedAuthentication (TDEIO::AuthInfo&);
    bool                 cacheAuthentication (const TDEIO::AuthInfo&);
    bool                 pingCacheDaemon () const;
    TQString              createAuthCacheKey (const KURL&);
    void                 sendAuthenticationKey (const TQCString&, const TQCString&, bool);
    void                 delCachedAuthentication (const TQString&);
    void                 setMultipleAuthCaching (bool);
    bool                 multipleAuthCaching () const;
    bool                 requestNetwork (const TQString& = TQString ::null );
    void                 dropNetwork (const TQString& = TQString ::null );
    DCOPClient*          dcopClient ();
    int                  waitForAnswer (int, int, TQByteArray&, int* = 0);
    void                 sendMetaData ();
    TQCString             mProtocol;
    TDEIO::Connection*     m_pConnection;
    TDEIO::MetaData        mOutgoingMetaData;
    TDEIO::MetaData        mIncomingMetaData;
    bool                 wasKilled () const;
    void                 setKillFlag ();
%End


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

protected:

%If (  - KDE_3_1_0 )
    void                 listEntry (const TDEIO::UDSEntry&, bool);
    void                 connectSlave (const TQString&);
    void                 disconnectSlave ();
    bool                 pingCacheDaemon () const;
    bool                 openPassDlg (TDEIO::AuthInfo&);
    bool                 checkCachedAuthentication (TDEIO::AuthInfo&);
    bool                 cacheAuthentication (const TDEIO::AuthInfo&);
    TQString              createAuthCacheKey (const KURL&);
    void                 sendAuthenticationKey (const TQCString&, const TQCString&, bool);
    void                 delCachedAuthentication (const TQString&);
    void                 setMultipleAuthCaching (bool);
    bool                 multipleAuthCaching () const;
    bool                 requestNetwork (const TQString& = TQString ::null );
    void                 dropNetwork (const TQString& = TQString ::null );
    int                  waitForAnswer (int, int, TQByteArray&, int* = 0);
    void                 sendMetaData ();
%End


};  // class SlaveBase

};  // namespace TDEIO

