Home · All Classes · All Namespaces · Modules · Functions · Files
base-connection.h
1 
23 #ifndef _TelepathyQt_base_connection_h_HEADER_GUARD_
24 #define _TelepathyQt_base_connection_h_HEADER_GUARD_
25 
26 #ifndef IN_TP_QT_HEADER
27 #error IN_TP_QT_HEADER
28 #endif
29 
30 #include <TelepathyQt/DBusService>
31 #include <TelepathyQt/Global>
32 #include <TelepathyQt/Types>
33 #include <TelepathyQt/Callbacks>
34 #include <TelepathyQt/Constants>
35 
36 #include <QDBusConnection>
37 
38 class QString;
39 
40 namespace Tp
41 {
42 
43 class TP_QT_EXPORT BaseConnection : public DBusService
44 {
45  Q_OBJECT
46  Q_DISABLE_COPY(BaseConnection)
47 
48 public:
49  static BaseConnectionPtr create(const QString &cmName, const QString &protocolName,
50  const QVariantMap &parameters) {
51  return BaseConnectionPtr(new BaseConnection(
52  QDBusConnection::sessionBus(), cmName, protocolName, parameters));
53  }
54  template<typename BaseConnectionSubclass>
56  const QString &protocolName, const QVariantMap &parameters) {
57  return SharedPtr<BaseConnectionSubclass>(new BaseConnectionSubclass(
58  QDBusConnection::sessionBus(), cmName, protocolName, parameters));
59  }
60  static BaseConnectionPtr create(const QDBusConnection &dbusConnection,
61  const QString &cmName, const QString &protocolName,
62  const QVariantMap &parameters) {
63  return BaseConnectionPtr(new BaseConnection(
64  dbusConnection, cmName, protocolName, parameters));
65  }
66  template<typename BaseConnectionSubclass>
68  const QString &cmName, const QString &protocolName,
69  const QVariantMap &parameters) {
70  return SharedPtr<BaseConnectionSubclass>(new BaseConnectionSubclass(
71  dbusConnection, cmName, protocolName, parameters));
72  }
73 
74  virtual ~BaseConnection();
75 
76  QString cmName() const;
77  QString protocolName() const;
78  QVariantMap parameters() const;
79  uint status() const;
80  QVariantMap immutableProperties() const;
81 
82  void setStatus(uint newStatus, uint reason);
83 
85  void setCreateChannelCallback(const CreateChannelCallback &cb);
86  Tp::BaseChannelPtr createChannel(const QString &channelType, uint targetHandleType, uint targetHandle, uint initiatorHandle, bool suppressHandler, DBusError *error);
87 
89  void setRequestHandlesCallback(const RequestHandlesCallback &cb);
90  UIntList requestHandles(uint handleType, const QStringList &identifiers, DBusError* error);
91 
92  //typedef Callback3<uint, const QString&, const QString&, DBusError*> SetPresenceCallback;
93  //void setSetPresenceCallback(const SetPresenceCallback &cb);
94 
95  void setSelfHandle(uint selfHandle);
96  uint selfHandle() const;
97 
99  void setConnectCallback(const ConnectCallback &cb);
100 
102  void setInspectHandlesCallback(const InspectHandlesCallback &cb);
103 
104  Tp::ChannelInfoList channelsInfo();
105  Tp::ChannelDetailsList channelsDetails();
106 
107  BaseChannelPtr ensureChannel(const QString &channelType, uint targetHandleType,
108  uint targetHandle, bool &yours, uint initiatorHandle, bool suppressHandler, DBusError *error);
109  void addChannel(BaseChannelPtr channel);
110 
111  QList<AbstractConnectionInterfacePtr> interfaces() const;
112  AbstractConnectionInterfacePtr interface(const QString &interfaceName) const;
113  bool plugInterface(const AbstractConnectionInterfacePtr &interface);
114 
115  virtual QString uniqueName() const;
116  bool registerObject(DBusError *error = NULL);
117 
118 Q_SIGNALS:
119  void disconnected();
120 
121 private Q_SLOTS:
122  TP_QT_NO_EXPORT void removeChannel();
123 
124 protected:
125  BaseConnection(const QDBusConnection &dbusConnection,
126  const QString &cmName, const QString &protocolName,
127  const QVariantMap &parameters);
128 
129  virtual bool registerObject(const QString &busName, const QString &objectPath,
130  DBusError *error);
131 
132 private:
133  class Adaptee;
134  friend class Adaptee;
135  class Private;
136  friend class Private;
137  Private *mPriv;
138 };
139 
141 {
142  Q_OBJECT
143  Q_DISABLE_COPY(AbstractConnectionInterface)
144 
145 public:
146  AbstractConnectionInterface(const QString &interfaceName);
147  virtual ~AbstractConnectionInterface();
148 
149 private:
150  friend class BaseConnection;
151 
152  class Private;
153  friend class Private;
154  Private *mPriv;
155 };
156 
158 {
159  Q_OBJECT
160  Q_DISABLE_COPY(BaseConnectionRequestsInterface)
161 
162 public:
163  static BaseConnectionRequestsInterfacePtr create(BaseConnection* connection) {
164  return BaseConnectionRequestsInterfacePtr(new BaseConnectionRequestsInterface(connection));
165  }
166  template<typename BaseConnectionRequestsInterfaceSubclass>
169  new BaseConnectionRequestsInterfaceSubclass(connection));
170  }
171 
173 
174  QVariantMap immutableProperties() const;
175 
177  void ensureChannel(const QVariantMap &request, bool &yours,
178  QDBusObjectPath &channel, QVariantMap &details, DBusError* error);
179  void createChannel(const QVariantMap &request, QDBusObjectPath &channel,
180  QVariantMap &details, DBusError* error);
181 
182 public Q_SLOTS:
183  void newChannels(const Tp::ChannelDetailsList &channels);
184  void channelClosed(const QDBusObjectPath &removed);
185 
186 protected:
188 
189 private:
190  void createAdaptor();
191 
192  class Adaptee;
193  friend class Adaptee;
194  struct Private;
195  friend struct Private;
196  Private *mPriv;
197 };
198 
199 
201 {
202  Q_OBJECT
203  Q_DISABLE_COPY(BaseConnectionContactsInterface)
204 
205 
206 public:
207  static BaseConnectionContactsInterfacePtr create() {
208  return BaseConnectionContactsInterfacePtr(new BaseConnectionContactsInterface());
209  }
210  template<typename BaseConnectionContactsInterfaceSubclass>
213  new BaseConnectionContactsInterfaceSubclass());
214  }
215 
217 
218  QVariantMap immutableProperties() const;
219 
221  void setGetContactAttributesCallback(const GetContactAttributesCallback &cb);
222  ContactAttributesMap getContactAttributes(const Tp::UIntList &handles,
223  const QStringList &interfaces,
224  DBusError *error);
225  void setContactAttributeInterfaces(const QStringList &contactAttributeInterfaces);
226 protected:
228 
229 private:
230  void createAdaptor();
231 
232  class Adaptee;
233  friend class Adaptee;
234  struct Private;
235  friend struct Private;
236  Private *mPriv;
237 };
238 
240 {
241  Q_OBJECT
243 
244 public:
245  static BaseConnectionSimplePresenceInterfacePtr create() {
246  return BaseConnectionSimplePresenceInterfacePtr(new BaseConnectionSimplePresenceInterface());
247  }
248  template<typename BaseConnectionSimplePresenceInterfaceSublclass>
251  new BaseConnectionSimplePresenceInterfaceSublclass());
252  }
253 
255 
256  QVariantMap immutableProperties() const;
257 
258  Tp::SimpleStatusSpecMap statuses() const;
259  void setStatuses(const Tp::SimpleStatusSpecMap &statuses);
260 
261  int maximumStatusMessageLength() const;
262  void setMaxmimumStatusMessageLength(uint maxmimumStatusMessageLength);
263 
265  void setSetPresenceCallback(const SetPresenceCallback &cb);
266 
267  void setPresences(const Tp::SimpleContactPresences &presences);
268 
269 protected:
271 
272 private:
273  void createAdaptor();
274 
275  class Adaptee;
276  friend class Adaptee;
277  struct Private;
278  friend struct Private;
279  Private *mPriv;
280 };
281 
283 {
284  Q_OBJECT
285  Q_DISABLE_COPY(BaseConnectionContactListInterface)
286 
287 public:
288  static BaseConnectionContactListInterfacePtr create()
289  {
290  return BaseConnectionContactListInterfacePtr(new BaseConnectionContactListInterface());
291  }
292  template<typename BaseConnectionContactListInterfaceSubclass>
294  {
296  new BaseConnectionContactListInterfaceSubclass());
297  }
298 
300 
301  QVariantMap immutableProperties() const;
302 
303  uint contactListState() const;
304  void setContactListState(uint contactListState);
305 
306  bool contactListPersists() const;
307  void setContactListPersists(bool contactListPersists);
308 
309  bool canChangeContactList() const;
310  void setCanChangeContactList(bool canChangeContactList);
311 
312  bool requestUsesMessage() const;
313  void setRequestUsesMessage(bool requestUsesMessage);
314 
315  bool downloadAtConnection() const;
316  void setDownloadAtConnection(bool downloadAtConnection);
317 
319  void setGetContactListAttributesCallback(const GetContactListAttributesCallback &cb);
320  Tp::ContactAttributesMap getContactListAttributes(const QStringList &interfaces, bool hold, DBusError *error);
321 
323  void setRequestSubscriptionCallback(const RequestSubscriptionCallback &cb);
324  void requestSubscription(const Tp::UIntList &contacts, const QString &message, DBusError *error);
325 
327  void setAuthorizePublicationCallback(const AuthorizePublicationCallback &cb);
328  void authorizePublication(const Tp::UIntList &contacts, DBusError *error);
329 
331  void setRemoveContactsCallback(const RemoveContactsCallback &cb);
332  void removeContacts(const Tp::UIntList &contacts, DBusError *error);
333 
335  void setUnsubscribeCallback(const UnsubscribeCallback &cb);
336  void unsubscribe(const Tp::UIntList &contacts, DBusError *error);
337 
339  void setUnpublishCallback(const UnpublishCallback &cb);
340  void unpublish(const Tp::UIntList &contacts, DBusError *error);
341 
343  void setDownloadCallback(const DownloadCallback &cb);
344  void download(DBusError *error);
345 
346  void contactsChangedWithID(const Tp::ContactSubscriptionMap &changes, const Tp::HandleIdentifierMap &identifiers, const Tp::HandleIdentifierMap &removals);
347 
348 protected:
350 
351 private:
352  void createAdaptor();
353 
354  class Adaptee;
355  friend class Adaptee;
356  struct Private;
357  friend struct Private;
358  Private *mPriv;
359 };
360 
362 {
363  Q_OBJECT
364  Q_DISABLE_COPY(BaseConnectionContactInfoInterface)
365 
366 public:
367  static BaseConnectionContactInfoInterfacePtr create()
368  {
369  return BaseConnectionContactInfoInterfacePtr(new BaseConnectionContactInfoInterface());
370  }
371  template<typename BaseConnectionContactInfoInterfaceSubclass>
373  {
375  new BaseConnectionContactInfoInterfaceSubclass());
376  }
377 
379 
380  QVariantMap immutableProperties() const;
381 
382  Tp::ContactInfoFlags contactInfoFlags() const;
383  void setContactInfoFlags(const Tp::ContactInfoFlags &contactInfoFlags);
384 
385  Tp::FieldSpecs supportedFields() const;
386  void setSupportedFields(const Tp::FieldSpecs &supportedFields);
387 
389  void setGetContactInfoCallback(const GetContactInfoCallback &cb);
390  Tp::ContactInfoMap getContactInfo(const Tp::UIntList &contacts, DBusError *error);
391 
393  void setRefreshContactInfoCallback(const RefreshContactInfoCallback &cb);
394  void refreshContactInfo(const Tp::UIntList &contacts, DBusError *error);
395 
397  void setRequestContactInfoCallback(const RequestContactInfoCallback &cb);
398  Tp::ContactInfoFieldList requestContactInfo(uint contact, DBusError *error);
399 
401  void setSetContactInfoCallback(const SetContactInfoCallback &cb);
402  void setContactInfo(const Tp::ContactInfoFieldList &contactInfo, DBusError *error);
403 
404  void contactInfoChanged(uint contact, const Tp::ContactInfoFieldList &contactInfo);
405 
406 protected:
408 
409 private:
410  void createAdaptor();
411 
412  class Adaptee;
413  friend class Adaptee;
414  struct Private;
415  friend struct Private;
416  Private *mPriv;
417 };
418 
420 {
421  Q_OBJECT
422  Q_DISABLE_COPY(BaseConnectionAddressingInterface)
423 
424 public:
425  static BaseConnectionAddressingInterfacePtr create() {
426  return BaseConnectionAddressingInterfacePtr(new BaseConnectionAddressingInterface());
427  }
428  template<typename BaseConnectionAddressingInterfaceSubclass>
431  new BaseConnectionAddressingInterfaceSubclass());
432  }
433 
435 
436  QVariantMap immutableProperties() const;
437 
438 
439 
440  typedef Callback6 < void, const QString&, const QStringList&, const QStringList&,
442  void setGetContactsByVCardFieldCallback(const GetContactsByVCardFieldCallback &cb);
443 
444  typedef Callback5 < void, const QStringList&, const QStringList&,
446  void setGetContactsByURICallback(const GetContactsByURICallback &cb);
447 
448 protected:
450 
451 private:
452  void createAdaptor();
453 
454  class Adaptee;
455  friend class Adaptee;
456  struct Private;
457  friend struct Private;
458  Private *mPriv;
459 };
460 
462 {
463  Q_OBJECT
464  Q_DISABLE_COPY(BaseConnectionAliasingInterface)
465 
466 public:
467  static BaseConnectionAliasingInterfacePtr create()
468  {
469  return BaseConnectionAliasingInterfacePtr(new BaseConnectionAliasingInterface());
470  }
471  template<typename BaseConnectionAliasingInterfaceSubclass>
473  {
475  new BaseConnectionAliasingInterfaceSubclass());
476  }
477 
479 
480  QVariantMap immutableProperties() const;
481 
483  void setGetAliasFlagsCallback(const GetAliasFlagsCallback &cb);
484  Tp::ConnectionAliasFlags getAliasFlags(DBusError *error);
485 
487  void setRequestAliasesCallback(const RequestAliasesCallback &cb);
488  QStringList requestAliases(const Tp::UIntList &contacts, DBusError *error);
489 
491  void setGetAliasesCallback(const GetAliasesCallback &cb);
492  Tp::AliasMap getAliases(const Tp::UIntList &contacts, DBusError *error);
493 
495  void setSetAliasesCallback(const SetAliasesCallback &cb);
496  void setAliases(const Tp::AliasMap &aliases, DBusError *error);
497 
498  void aliasesChanged(const Tp::AliasPairList &aliases);
499 
500 protected:
502 
503 private:
504  void createAdaptor();
505 
506  class Adaptee;
507  friend class Adaptee;
508  struct Private;
509  friend struct Private;
510  Private *mPriv;
511 };
512 
513 }
514 
515 #endif
Callback3< UIntList, uint, const QStringList &, DBusError * > RequestHandlesCallback
Definition: base-connection.h:88
Callback with 5 arguments.
Definition: callbacks.h:290
Callback2< void, const Tp::UIntList &, DBusError * > RefreshContactInfoCallback
Definition: base-connection.h:392
static BaseConnectionPtr create(const QDBusConnection &dbusConnection, const QString &cmName, const QString &protocolName, const QVariantMap &parameters)
Definition: base-connection.h:60
Callback3< void, const Tp::UIntList &, const QString &, DBusError * > RequestSubscriptionCallback
Definition: base-connection.h:322
Callback1< void, DBusError * > DownloadCallback
Definition: base-connection.h:342
Base class for implementations of Connection.Interface.Aliasing.
Definition: base-connection.h:461
Base class for Connection implementations.
Definition: base-connection.h:43
Callback3< uint, const QString &, const QString &, DBusError * > SetPresenceCallback
Definition: base-connection.h:264
Definition: obj-x86_64-linux-gnu/TelepathyQt/_gen/types.h:3827
static SharedPtr< BaseConnectionSubclass > create(const QDBusConnection &dbusConnection, const QString &cmName, const QString &protocolName, const QVariantMap &parameters)
Definition: base-connection.h:67
Callback1< void, DBusError * > ConnectCallback
Definition: base-connection.h:98
static SharedPtr< BaseConnectionAddressingInterfaceSubclass > create()
Definition: base-connection.h:429
Callback2< void, const Tp::UIntList &, DBusError * > RemoveContactsCallback
Definition: base-connection.h:330
Callback with 6 arguments.
Definition: callbacks.h:327
QDBusConnection sessionBus()
Base class for D-Bus services.
Definition: dbus-service.h:46
static BaseConnectionContactInfoInterfacePtr create()
Definition: base-connection.h:367
Definition: obj-x86_64-linux-gnu/TelepathyQt/_gen/types.h:101
Callback2< Tp::ContactInfoFieldList, uint, DBusError * > RequestContactInfoCallback
Definition: base-connection.h:396
static BaseConnectionContactsInterfacePtr create()
Definition: base-connection.h:207
Callback2< void, const Tp::AliasMap &, DBusError * > SetAliasesCallback
Definition: base-connection.h:494
Callback2< Tp::AliasMap, const Tp::UIntList &, DBusError * > GetAliasesCallback
Definition: base-connection.h:490
static SharedPtr< BaseConnectionRequestsInterfaceSubclass > create(BaseConnection *connection)
Definition: base-connection.h:167
Callback2< void, const Tp::UIntList &, DBusError * > UnsubscribeCallback
Definition: base-connection.h:334
Definition: obj-x86_64-linux-gnu/TelepathyQt/_gen/types.h:161
static SharedPtr< BaseConnectionContactsInterfaceSubclass > create()
Definition: base-connection.h:211
static SharedPtr< BaseConnectionContactListInterfaceSubclass > create()
Definition: base-connection.h:293
static SharedPtr< BaseConnectionSimplePresenceInterfaceSublclass > create()
Definition: base-connection.h:249
static BaseConnectionPtr create(const QString &cmName, const QString &protocolName, const QVariantMap &parameters)
Definition: base-connection.h:49
Base class for implementations of Connection.Interface.Contacts.
Definition: base-connection.h:200
Callback6< void, const QString &, const QStringList &, const QStringList &, Tp::AddressingNormalizationMap &, Tp::ContactAttributesMap &, DBusError * > GetContactsByVCardFieldCallback
Definition: base-connection.h:441
Callback3< QStringList, uint, const Tp::UIntList &, DBusError * > InspectHandlesCallback
Definition: base-connection.h:101
Callback3< Tp::ContactAttributesMap, const QStringList &, bool, DBusError * > GetContactListAttributesCallback
Definition: base-connection.h:318
Base class for implementations of Connection.Interface.SimplePresence.
Definition: base-connection.h:239
Callback5< void, const QStringList &, const QStringList &, Tp::AddressingNormalizationMap &, Tp::ContactAttributesMap &, DBusError * > GetContactsByURICallback
Definition: base-connection.h:445
static SharedPtr< BaseConnectionSubclass > create(const QString &cmName, const QString &protocolName, const QVariantMap &parameters)
Definition: base-connection.h:55
Definition: obj-x86_64-linux-gnu/TelepathyQt/_gen/types.h:183
Small container class, containing a D-Bus error.
Definition: dbus-error.h:35
Base class for implementations of Connection.Interface.ContactList.
Definition: base-connection.h:282
static SharedPtr< BaseConnectionAliasingInterfaceSubclass > create()
Definition: base-connection.h:472
Callback4< BaseChannelPtr, const QString &, uint, uint, DBusError * > CreateChannelCallback
Definition: base-connection.h:84
Callback2< void, const Tp::ContactInfoFieldList &, DBusError * > SetContactInfoCallback
Definition: base-connection.h:400
Callback2< void, const Tp::UIntList &, DBusError * > UnpublishCallback
Definition: base-connection.h:338
static SharedPtr< BaseConnectionContactInfoInterfaceSubclass > create()
Definition: base-connection.h:372
Definition: obj-x86_64-linux-gnu/TelepathyQt/_gen/types.h:1646
Base class for D-Bus service interfaces.
Definition: dbus-service.h:73
static BaseConnectionAliasingInterfacePtr create()
Definition: base-connection.h:467
Definition: obj-x86_64-linux-gnu/TelepathyQt/_gen/types.h:3505
Callback2< Tp::ContactInfoMap, const Tp::UIntList &, DBusError * > GetContactInfoCallback
Definition: base-connection.h:388
The SharedPtr class is a pointer to an explicitly shared object.
Definition: shared-ptr.h:39
Callback2< void, const Tp::UIntList &, DBusError * > AuthorizePublicationCallback
Definition: base-connection.h:326
Callback1< Tp::ConnectionAliasFlags, DBusError * > GetAliasFlagsCallback
Definition: base-connection.h:482
Base class for implementations of Connection.Interface.Requests.
Definition: base-connection.h:157
Callback3< ContactAttributesMap, const Tp::UIntList &, const QStringList &, DBusError * > GetContactAttributesCallback
Definition: base-connection.h:220
Base class for all the Connection object interface implementations.
Definition: base-connection.h:140
Definition: obj-x86_64-linux-gnu/TelepathyQt/_gen/types.h:950
static BaseConnectionSimplePresenceInterfacePtr create()
Definition: base-connection.h:245
Definition: obj-x86_64-linux-gnu/TelepathyQt/_gen/types.h:3849
static BaseConnectionAddressingInterfacePtr create()
Definition: base-connection.h:425
static BaseConnectionContactListInterfacePtr create()
Definition: base-connection.h:288
Base class for implementations of Connection.Interface.Contact.Info.
Definition: base-connection.h:361
Definition: obj-x86_64-linux-gnu/TelepathyQt/_gen/types.h:3459
Base class for implementations of Connection.Interface.Addressing.
Definition: base-connection.h:419
Tp::RequestableChannelClassList requestableChannelClasses
Definition: base-connection.h:176
Callback2< QStringList, const Tp::UIntList &, DBusError * > RequestAliasesCallback
Definition: base-connection.h:486
static BaseConnectionRequestsInterfacePtr create(BaseConnection *connection)
Definition: base-connection.h:163
Definition: abstract-adaptor.cpp:31


Copyright © 2008-2011 Collabora Ltd. and Nokia Corporation
Telepathy-Qt 0.9.5