00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 #ifndef QDBUSPROXY_H
00025 #define QDBUSPROXY_H
00026 
00211 #include <qobject.h>
00212 
00213 #include "dbus/qdbusmacros.h"
00214 
00215 class QDBusConnection;
00216 class QDBusData;
00217 class QDBusError;
00218 class QDBusMessage;
00219 
00220 template <class T> class QValueList;
00221 
00236 class QDBUS_EXPORT QDBusProxy : public QObject
00237 {
00238   Q_OBJECT
00239 public:
00249     QDBusProxy(QObject* parent = 0, const char* name = 0);
00250 
00266     QDBusProxy(const QDBusConnection& connection, QObject* parent = 0,
00267                const char* name = 0);
00268 
00283     QDBusProxy(const QString& service, const QString& path,
00284                const QString& interface, const QDBusConnection& connection,
00285                QObject* parent = 0, const char* name = 0);
00286 
00290     virtual ~QDBusProxy();
00291 
00312     bool setConnection(const QDBusConnection& connection);
00313 
00319     const QDBusConnection& connection() const;
00320 
00337     void setService(const QString& service);
00338 
00346     QString service() const;
00347 
00365     void setPath(const QString& path);
00366 
00374     QString path() const;
00375 
00393     void setInterface(const QString& interface);
00394 
00402     QString interface() const;
00403 
00422     bool canSend() const;
00423 
00443     bool send(const QString& method, const QValueList<QDBusData>& params) const;
00444 
00465     QDBusMessage sendWithReply(const QString& method,
00466                                const QValueList<QDBusData>& params, QDBusError* error = 0) const;
00467 
00497     int sendWithAsyncReply(const QString& method, const QValueList<QDBusData>& params);
00498 
00508     QDBusError lastError() const;
00509 
00510 signals:
00521     void dbusSignal(const QDBusMessage& message);
00522 
00537     void asyncReply(int callID, const QDBusMessage& message);
00538 
00539 protected slots:
00559     virtual void handleDBusSignal(const QDBusMessage& message);
00560 
00571     virtual void handleAsyncReply(const QDBusMessage& message);
00572 
00573 private:
00574   class Private;
00575   Private* d;
00576 
00577 private:
00578   QDBusProxy(const QDBusProxy&);
00579   QDBusProxy& operator=(const QDBusProxy&);
00580 };
00581 
00582 #endif
00583