Home · Modules · All Classes · All Namespaces
dbus-proxy.h
1 
23 #ifndef _TelepathyQt_dbus_proxy_h_HEADER_GUARD_
24 #define _TelepathyQt_dbus_proxy_h_HEADER_GUARD_
25 
26 #ifndef IN_TP_QT_HEADER
27 #error IN_TP_QT_HEADER
28 #endif
29 
30 #include <TelepathyQt/Global>
31 #include <TelepathyQt/Object>
32 #include <TelepathyQt/ReadyObject>
33 
34 class QDBusConnection;
35 class QDBusError;
36 
37 namespace Tp
38 {
39 
40 class TestBackdoors;
41 
42 class TP_QT_EXPORT DBusProxy : public Object, public ReadyObject
43 {
44  Q_OBJECT
45  Q_DISABLE_COPY(DBusProxy)
46 
47 public:
48  DBusProxy(const QDBusConnection &dbusConnection, const QString &busName,
49  const QString &objectPath, const Feature &featureCore);
50  virtual ~DBusProxy();
51 
52  QDBusConnection dbusConnection() const;
53  QString busName() const;
54  QString objectPath() const;
55 
56  bool isValid() const;
57  QString invalidationReason() const;
58  QString invalidationMessage() const;
59 
60 Q_SIGNALS:
61  void invalidated(Tp::DBusProxy *proxy,
62  const QString &errorName, const QString &errorMessage);
63 
64 protected:
65  void setBusName(const QString &busName);
66  void invalidate(const QString &reason, const QString &message);
67  void invalidate(const QDBusError &error);
68 
69 private Q_SLOTS:
70  TP_QT_NO_EXPORT void emitInvalidated();
71 
72 private:
73  friend class TestBackdoors;
74 
75  struct Private;
76  friend struct Private;
77  Private *mPriv;
78 };
79 
80 class TP_QT_EXPORT StatelessDBusProxy : public DBusProxy
81 {
82  Q_OBJECT
83  Q_DISABLE_COPY(StatelessDBusProxy)
84 
85 public:
86  StatelessDBusProxy(const QDBusConnection &dbusConnection,
87  const QString &busName, const QString &objectPath, const Feature &featureCore);
88  virtual ~StatelessDBusProxy();
89 
90 private:
91  struct Private;
92  friend struct Private;
93  Private *mPriv;
94 };
95 
96 class TP_QT_EXPORT StatefulDBusProxy : public DBusProxy
97 {
98  Q_OBJECT
99  Q_DISABLE_COPY(StatefulDBusProxy)
100 
101 public:
102  StatefulDBusProxy(const QDBusConnection &dbusConnection,
103  const QString &busName, const QString &objectPath, const Feature &featureCore);
104  virtual ~StatefulDBusProxy();
105 
106  static QString uniqueNameFrom(const QDBusConnection &bus, const QString &wellKnownOrUnique);
107  static QString uniqueNameFrom(const QDBusConnection &bus, const QString &wellKnownOrUnique,
108  QString &error, QString &message);
109 
110 private Q_SLOTS:
111  TP_QT_NO_EXPORT void onServiceOwnerChanged(const QString &name, const QString &oldOwner,
112  const QString &newOwner);
113 
114 private:
115  struct Private;
116  friend struct Private;
117  Private *mPriv;
118 };
119 
120 } // Tp
121 
122 #endif
The StatefulDBusProxy class is a base class representing a remote object whose API is stateful.
Definition: dbus-proxy.h:96
The Feature class represents a feature that can be enabled on demand.
Definition: feature.h:41
Definition: ready-object.h:42
The StatelessDBusProxy class is a base class representing a remote object whose API is basically stat...
Definition: dbus-proxy.h:80
The Object class provides an object with property notification.
Definition: object.h:39
Definition: abstract-adaptor.cpp:31
The DBusProxy class is a base class representing a remote object available over D-Bus.
Definition: dbus-proxy.h:42