| # dcop Library API Documentation
Overview | Class Hierarchy | Classes | Classes (annotated) | Members | Source Files

# dcopclient.h

    00001 /*
    00002 Copyright (c) 1999 Preston Brown <pbrown@kde.org>
    00003 Copyright (c) 1999, 2000 Matthias Ettrich <ettrich@kde.org>
    00004
    00005 Permission is hereby granted, free of charge, to any person obtaining a copy
    00006 of this software and associated documentation files (the "Software"), to deal
    00007 in the Software without restriction, including without limitation the rights
    00008 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    00009 copies of the Software, and to permit persons to whom the Software is
    00010 furnished to do so, subject to the following conditions:
    00011
    00012 The above copyright notice and this permission notice shall be included in
    00013 all copies or substantial portions of the Software.
    00014
    00015 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    00016 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    00017 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
    00018 AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
    00019 AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
    00020 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
    00021 */
    00022
    00023 #ifndef _DCOPCLIENT_H
    00024 #define _DCOPCLIENT_H
    00025
    00026 #include <qobject.h>
    00027 #include <qcstring.h>
    00028 #include <qvaluelist.h>
    00029 #include <qstring.h>
    00030 #include <kdatastream.h> // needed for proper bool marshalling
    00031
    00032 class DCOPObjectProxy;
    00033 class DCOPClientPrivate;
    00034 class DCOPClientTransaction;
    00035
    00036 typedef QValueList<QCString> QCStringList;
    00037
    00067 class DCOPClient : public QObject
    00068 {
    00069   Q_OBJECT
    00070
    00071  public:
    00074   DCOPClient();
    00075
    00079   virtual ~DCOPClient();
    00080
    00088   static void setServerAddress(const QCString &addr);
    00089
    00108   bool attach();
    00109
    00116   void bindToApp();
    00117
    00122   bool detach();
    00123
    00128   bool isAttached() const;
    00129
    00135   bool isAttachedToForeignServer() const;
    00136
    00141   bool acceptCalls() const;
    00142
    00149   void setAcceptCalls(bool b);
    00150
    00157   bool qtBridgeEnabled(); // ### KDE 4.0: make const
    00158
    00166   void setQtBridgeEnabled(bool b);
    00167
    00193   QCString registerAs( const QCString &appId, bool addPID = true );
    00194
    00199   bool isRegistered() const;
    00200
    00206   QCString appId() const;
    00207
    00212   int socket() const;
    00213
    00226   void suspend();
    00227
    00233   void resume();
    00234
    00241   bool isSuspended() const;
    00242
    00253   bool send(const QCString &remApp, const QCString &remObj,
    00254             const QCString &remFun, const QByteArray &data);
    00255
    00267   bool send(const QCString &remApp, const QCString &remObj,
    00268             const QCString &remFun, const QString &data);
    00269
    00295   bool call(const QCString &remApp, const QCString &remObj,
    00296             const QCString &remFun, const QByteArray &data,
    00297             QCString& replyType, QByteArray &replyData,
    00298             bool useEventLoop=false);
    00299
    00332   bool findObject(const QCString &remApp, const QCString &remObj,
    00333             const QCString &remFun, const QByteArray &data,
    00334             QCString &foundApp, QCString &foundObj,
    00335             bool useEventLoop=false);
    00336
    00337
    00342   void emitDCOPSignal( const QCString &object, const QCString &signal,
    00343                        const QByteArray &data);
    00344
    00345   /* For backwards compatibility */
    00346   void emitDCOPSignal( const QCString &signal, const QByteArray &data);
    00347
    00368   bool connectDCOPSignal( const QCString &sender, const QCString &senderObj,
    00369                           const QCString &signal,
    00370                           const QCString &receiverObj, const QCString &slot,
    00371                           bool Volatile);
    00372
    00377   bool connectDCOPSignal( const QCString &sender, const QCString &signal,
    00378                           const QCString &receiverObj, const QCString &slot,
    00379                           bool Volatile);
    00380
    00398   bool disconnectDCOPSignal( const QCString &sender, const QCString &senderObj,
    00399                           const QCString &signal,
    00400                           const QCString &receiverObj, const QCString &slot);
    00401
    00406   bool disconnectDCOPSignal( const QCString &sender, const QCString &signal,
    00407                           const QCString &receiverObj, const QCString &slot);
    00408
    00424   virtual bool process(const QCString &fun, const QByteArray &data,
    00425                        QCString& replyType, QByteArray &replyData);
    00426
    00436   DCOPClientTransaction *beginTransaction( );
    00437
    00445   void endTransaction( DCOPClientTransaction *t, QCString& replyType, QByteArray &replyData);
    00446
    00456   Q_INT32 transactionId() const;
    00457
    00463   bool isApplicationRegistered( const QCString& remApp);
    00464
    00470   QCStringList registeredApplications();
    00471
    00479   QCStringList remoteObjects( const QCString& remApp, bool *ok = 0 );
    00480
    00490   QCStringList remoteInterfaces( const QCString& remApp, const QCString& remObj , bool *ok = 0 );
    00491
    00501   QCStringList remoteFunctions( const QCString& remApp, const QCString& remObj , bool *ok = 0 );
    00502
    00515   bool receive(const QCString &app, const QCString &obj,
    00516                const QCString &fun, const QByteArray& data,
    00517                QCString& replyType, QByteArray &replyData);
    00518
    00530   bool find(const QCString &app, const QCString &obj,
    00531             const QCString &fun, const QByteArray& data,
    00532             QCString& replyType, QByteArray &replyData);
    00533
    00551   static QCString normalizeFunctionSignature( const QCString& fun );
    00552
    00553
    00559   QCString senderId() const;
    00560
    00561
    00569   void setDefaultObject( const QCString& objId );
    00570
    00579   QCString defaultObject() const;
    00580
    00592   void setNotifications( bool enabled );
    00593
    00602   void setDaemonMode( bool daemonMode );
    00603
    00611   static DCOPClient* mainClient();
    00612
    00620   static void setMainClient( DCOPClient* mainClient);
    00621
    00625   static void emergencyClose();
    00626
    00632   static const char *postMortemSender();
    00634   static const char *postMortemObject();
    00636   static const char *postMortemFunction();
    00637
    00645   static QCString dcopServerFile(const QCString &hostname=0);
    00646
    00651   static QCString dcopServerFileOld(const QCString &hostname=0);
    00652
    00653 signals:
    00662   void applicationRegistered( const QCString& appId );
    00671   void applicationRemoved( const QCString& appId );
    00672
    00681   void attachFailed(const QString &msg);
    00682
    00700   void blockUserInput( bool block );
    00701
    00702 public slots:
    00703
    00704 protected slots:
    00709   void processSocketData(int socknum);
    00710
    00711 private slots:
    00712   void processPostedMessagesInternal();
    00713
    00714 protected:
    00715
    00716 private:
    00717
    00718   bool attachInternal( bool registerAsAnonymous = TRUE );
    00719
    00720   bool callInternal(const QCString &remApp, const QCString &remObj,
    00721             const QCString &remFun, const QByteArray &data,
    00722             QCString& replyType, QByteArray &replyData,
    00723             bool useEventLoop, int minor_opcode);
    00724 protected:
    00725   virtual void virtual_hook( int id, void* data );
    00726 private:
    00727   DCOPClientPrivate *d;
    00728 };
    00729
    00730 #endif

This file is part of the documentation for kdelibs Version 3.1.5.
Documentation copyright © 1996-2002 the KDE developers.
Generated on Wed Jan 28 12:42:41 2004 by doxygen 1.3.4 written by Dimitri van Heesch, © 1997-2001