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


//                 Generated by preSip
//            module dcop  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 DCOPClientTransaction;

class DCOPClient : TQObject
{
%TypeHeaderCode
#include <dcopclient.h>
%End


public:
                         DCOPClient ();
    static void          setServerAddress (const TQCString&);
    bool                 attach ();
    void                 bindToApp ();
    bool                 detach ();
    bool                 isAttached () const;
    bool                 isAttachedToForeignServer () const;
    bool                 acceptCalls () const;
    void                 setAcceptCalls (bool);

%If ( KDE_3_0_3 -  )
    bool                 qtBridgeEnabled ();
    void                 setQtBridgeEnabled (bool);
%End

    TQCString             registerAs (const TQCString&, bool = 1);
    bool                 isRegistered () const;
    TQCString             appId () const;
    int                  socket () const;
    void                 suspend ();
    void                 resume ();

%If ( KDE_3_1_0 -  )
    bool                 isSuspended () const;
%End

    bool                 send (const TQCString&, const TQCString&, const TQCString&, const TQByteArray&);
    bool                 send (const TQCString&, const TQCString&, const TQCString&, const TQString&);

%If ( KDE_3_2_0 -  )
    bool                 call (const TQCString&, const TQCString&, const TQCString&, const TQByteArray&, TQCString& /Out/, TQByteArray& /Out/, bool, int);
%End

    bool                 call (const TQCString&, const TQCString&, const TQCString&, const TQByteArray&, TQCString& /Out/, TQByteArray& /Out/, bool = 0);

%If ( KDE_3_3_0 -  )
    int                  callAsync (const TQCString&, const TQCString&, const TQCString&, const TQByteArray&, TQObject*, const char*);
%End


%If ( KDE_3_2_0 -  )
    bool                 findObject (const TQCString&, const TQCString&, const TQCString&, const TQByteArray&, TQCString& /Out/, TQCString& /Out/, bool, int);
%End

    bool                 findObject (const TQCString&, const TQCString&, const TQCString&, const TQByteArray&, TQCString& /Out/, TQCString& /Out/, bool = 0);
    void                 emitDCOPSignal (const TQCString&, const TQCString&, const TQByteArray&);
    void                 emitDCOPSignal (const TQCString&, const TQByteArray&);
    bool                 connectDCOPSignal (const TQCString&, const TQCString&, const TQCString&, const TQCString&, const TQCString&, bool);
    bool                 connectDCOPSignal (const TQCString&, const TQCString&, const TQCString&, const TQCString&, bool);
    bool                 disconnectDCOPSignal (const TQCString&, const TQCString&, const TQCString&, const TQCString&, const TQCString&);
    bool                 disconnectDCOPSignal (const TQCString&, const TQCString&, const TQCString&, const TQCString&);
    virtual bool         process (const TQCString&, const TQByteArray&, TQCString&, TQByteArray&);
    DCOPClientTransaction* beginTransaction ();
    void                 endTransaction (DCOPClientTransaction*, TQCString&, TQByteArray&);
    TQ_INT32             transactionId ();
    bool                 isApplicationRegistered (const TQCString&);
    QCStringList         registeredApplications ();
    QCStringList         remoteObjects (const TQCString&, bool* = 0);
    QCStringList         remoteInterfaces (const TQCString&, const TQCString&, bool* = 0);
    QCStringList         remoteFunctions (const TQCString&, const TQCString&, bool* = 0);
    bool                 receive (const TQCString&, const TQCString&, const TQCString&, const TQByteArray&, TQCString& /Out/, TQByteArray& /Out/);
    bool                 find (const TQCString&, const TQCString&, const TQCString&, const TQByteArray&, TQCString& /Out/, TQByteArray& /Out/);
    static TQCString     normalizeFunctionSignature (const TQCString&);
    TQCString            senderId () const;
    void                 setDefaultObject (const TQCString&);
    TQCString            defaultObject () const;
    void                 setNotifications (bool);
    void                 setDaemonMode (bool);

%If ( KDE_3_2_0 -  )
    void                 setPriorityCall (bool);
%End

    static DCOPClient*   mainClient ();
    static void          setMainClient (DCOPClient*);

%If ( KDE_3_2_0 -  )
    static DCOPClient*   findLocalClient (const TQCString&);
%End

    static void          emergencyClose ();
    static const char*   postMortemSender ();
    static const char*   postMortemObject ();
    static const char*   postMortemFunction ();
    static TQCString      dcopServerFile (const TQCString& = 0);
    static TQCString      dcopServerFileOld (const TQCString& = 0);

%If ( KDE_3_2_0 -  )
    static TQCString      iceauthPath ();
%End


signals:
    void                 applicationRegistered (const TQCString&);
    void                 applicationRemoved (const TQCString&);
    void                 attachFailed (const TQString&);
    void                 blockUserInput (bool);

%If ( KDE_3_2_0 -  )
    void                 callBack (int, const TQCString&, const TQByteArray&);
%End


protected slots:
    void                 processSocketData (int);

public:

%If ( KDE_3_2_3 -  )
//ig     void                 handleAsyncReply (DCOPClient::ReplyStruct*);
%End


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

public:

%If ( KDE_3_2_0 - KDE_3_3_0 )
    int                  callAsync (const TQCString&, const TQCString&, const TQCString&, const TQByteArray&, SIP_RXOBJ_CON, SIP_SLOT_CON (int, const TQCString&, const TQByteArray&));

//force
%ConvertToSubClassCode
    // The table of Python class objects indexed by their names.  The table
    // must be sorted by name.

    static sipStringTypeClassMap map[] = {
        {sipName_DCOPClient,              &sipClass_DCOPClient},
    };

    sipClass = sipMapStringToClass(sipCpp -> className(),map,sizeof (map)/sizeof (map[0]));
%End
//end
%End


};  // class DCOPClient

typedef TQValueList<TQCString> QCStringList;
