00001
00023 #ifndef _TelepathyQt_base_connection_h_HEADER_GUARD_
00024 #define _TelepathyQt_base_connection_h_HEADER_GUARD_
00025
00026 #ifndef IN_TP_QT_HEADER
00027 #error IN_TP_QT_HEADER
00028 #endif
00029
00030 #include <TelepathyQt/AvatarSpec>
00031 #include <TelepathyQt/DBusService>
00032 #include <TelepathyQt/Global>
00033 #include <TelepathyQt/Types>
00034 #include <TelepathyQt/Callbacks>
00035 #include <TelepathyQt/Constants>
00036
00037 #include <QDBusConnection>
00038
00039 class QString;
00040
00041 namespace Tp
00042 {
00043
00044 class TP_QT_EXPORT BaseConnection : public DBusService
00045 {
00046 Q_OBJECT
00047 Q_DISABLE_COPY(BaseConnection)
00048
00049 public:
00050 static BaseConnectionPtr create(const QString &cmName, const QString &protocolName,
00051 const QVariantMap ¶meters,
00052 const QDBusConnection &dbusConnection = QDBusConnection::sessionBus())
00053 {
00054 return BaseConnectionPtr(new BaseConnection(
00055 dbusConnection, cmName, protocolName, parameters));
00056 }
00057 template<typename BaseConnectionSubclass>
00058 static SharedPtr<BaseConnectionSubclass> create(const QString &cmName,
00059 const QString &protocolName, const QVariantMap ¶meters,
00060 const QDBusConnection &dbusConnection = QDBusConnection::sessionBus())
00061 {
00062 return SharedPtr<BaseConnectionSubclass>(new BaseConnectionSubclass(
00063 dbusConnection, cmName, protocolName, parameters));
00064 }
00065
00066 virtual ~BaseConnection();
00067
00068 QString cmName() const;
00069 QString protocolName() const;
00070 QVariantMap parameters() const;
00071 QVariantMap immutableProperties() const;
00072
00073 uint selfHandle() const;
00074 void setSelfHandle(uint selfHandle);
00075
00076 QString selfID() const;
00077 void setSelfID(const QString &selfID);
00078
00079 void setSelfContact(uint selfHandle, const QString &selfID);
00080
00081 uint status() const;
00082 void setStatus(uint newStatus, uint reason);
00083
00084 typedef Callback2<BaseChannelPtr, const QVariantMap &, DBusError*> CreateChannelCallback;
00085 void setCreateChannelCallback(const CreateChannelCallback &cb);
00086 BaseChannelPtr createChannel(const QVariantMap &request, bool suppressHandler, DBusError *error);
00087
00088 typedef Callback1<void, DBusError*> ConnectCallback;
00089 void setConnectCallback(const ConnectCallback &cb);
00090
00091 typedef Callback3<QStringList, uint, const Tp::UIntList &, DBusError*> InspectHandlesCallback;
00092 void setInspectHandlesCallback(const InspectHandlesCallback &cb);
00093 QStringList inspectHandles(uint handleType, const Tp::UIntList &handles, DBusError *error);
00094
00095 typedef Callback3<Tp::UIntList, uint, const QStringList &, DBusError*> RequestHandlesCallback;
00096 void setRequestHandlesCallback(const RequestHandlesCallback &cb);
00097 Tp::UIntList requestHandles(uint handleType, const QStringList &identifiers, DBusError *error);
00098
00099 Tp::ChannelInfoList channelsInfo();
00100 Tp::ChannelDetailsList channelsDetails();
00101
00102 BaseChannelPtr ensureChannel(const QVariantMap &request, bool &yours, bool suppressHandler, DBusError *error);
00103
00104 void addChannel(BaseChannelPtr channel, bool suppressHandler = false);
00105
00106 QList<AbstractConnectionInterfacePtr> interfaces() const;
00107 AbstractConnectionInterfacePtr interface(const QString &interfaceName) const;
00108 bool plugInterface(const AbstractConnectionInterfacePtr &interface);
00109 bool registerObject(DBusError *error = NULL);
00110
00111 virtual QString uniqueName() const;
00112
00113 Q_SIGNALS:
00114 void disconnected();
00115
00116 private Q_SLOTS:
00117 TP_QT_NO_EXPORT void removeChannel();
00118
00119 protected:
00120 BaseConnection(const QDBusConnection &dbusConnection,
00121 const QString &cmName, const QString &protocolName,
00122 const QVariantMap ¶meters);
00123
00124 virtual bool registerObject(const QString &busName, const QString &objectPath,
00125 DBusError *error);
00126
00127 virtual bool matchChannel(const Tp::BaseChannelPtr &channel, const QVariantMap &request, Tp::DBusError *error);
00128
00129 private:
00130 class Adaptee;
00131 friend class Adaptee;
00132 struct Private;
00133 friend struct Private;
00134 Private *mPriv;
00135 };
00136
00137 class TP_QT_EXPORT AbstractConnectionInterface : public AbstractDBusServiceInterface
00138 {
00139 Q_OBJECT
00140 Q_DISABLE_COPY(AbstractConnectionInterface)
00141
00142 public:
00143 AbstractConnectionInterface(const QString &interfaceName);
00144 virtual ~AbstractConnectionInterface();
00145
00146 protected:
00147 virtual void setBaseConnection(BaseConnection *connection);
00148
00149 private:
00150 friend class BaseConnection;
00151
00152 struct Private;
00153 friend struct Private;
00154 Private *mPriv;
00155 };
00156
00157 class TP_QT_EXPORT BaseConnectionRequestsInterface : public AbstractConnectionInterface
00158 {
00159 Q_OBJECT
00160 Q_DISABLE_COPY(BaseConnectionRequestsInterface)
00161
00162 public:
00163 static BaseConnectionRequestsInterfacePtr create(BaseConnection* connection) {
00164 return BaseConnectionRequestsInterfacePtr(new BaseConnectionRequestsInterface(connection));
00165 }
00166 template<typename BaseConnectionRequestsInterfaceSubclass>
00167 static SharedPtr<BaseConnectionRequestsInterfaceSubclass> create(BaseConnection* connection) {
00168 return SharedPtr<BaseConnectionRequestsInterfaceSubclass>(
00169 new BaseConnectionRequestsInterfaceSubclass(connection));
00170 }
00171
00172 virtual ~BaseConnectionRequestsInterface();
00173
00174 QVariantMap immutableProperties() const;
00175
00176 Tp::RequestableChannelClassList requestableChannelClasses;
00177 void ensureChannel(const QVariantMap &request, bool &yours,
00178 QDBusObjectPath &channel, QVariantMap &details, DBusError* error);
00179 void createChannel(const QVariantMap &request, QDBusObjectPath &channel,
00180 QVariantMap &details, DBusError* error);
00181
00182 public Q_SLOTS:
00183 void newChannels(const Tp::ChannelDetailsList &channels);
00184 void channelClosed(const QDBusObjectPath &removed);
00185
00186 protected:
00187 BaseConnectionRequestsInterface(BaseConnection* connection);
00188
00189 private:
00190 void createAdaptor();
00191
00192 class Adaptee;
00193 friend class Adaptee;
00194 struct Private;
00195 friend struct Private;
00196 Private *mPriv;
00197 };
00198
00199 class TP_QT_EXPORT BaseConnectionContactsInterface : public AbstractConnectionInterface
00200 {
00201 Q_OBJECT
00202 Q_DISABLE_COPY(BaseConnectionContactsInterface)
00203
00204 public:
00205 static BaseConnectionContactsInterfacePtr create()
00206 {
00207 return BaseConnectionContactsInterfacePtr(new BaseConnectionContactsInterface());
00208 }
00209 template<typename BaseConnectionContactsInterfaceSubclass>
00210 static SharedPtr<BaseConnectionContactsInterfaceSubclass> create()
00211 {
00212 return SharedPtr<BaseConnectionContactsInterfaceSubclass>(
00213 new BaseConnectionContactsInterfaceSubclass());
00214 }
00215
00216 virtual ~BaseConnectionContactsInterface();
00217
00218 QVariantMap immutableProperties() const;
00219
00220 QStringList contactAttributeInterfaces() const;
00221 void setContactAttributeInterfaces(const QStringList &contactAttributeInterfaces);
00222
00223 typedef Callback3<Tp::ContactAttributesMap, const Tp::UIntList &, const QStringList &, DBusError*> GetContactAttributesCallback;
00224 void setGetContactAttributesCallback(const GetContactAttributesCallback &cb);
00225 Tp::ContactAttributesMap getContactAttributes(const Tp::UIntList &handles, const QStringList &interfaces, DBusError *error);
00226
00227 void getContactByID(const QString &identifier, const QStringList &interfaces, uint &handle, QVariantMap &attributes, DBusError *error);
00228
00229 protected:
00230 BaseConnectionContactsInterface();
00231 void setBaseConnection(BaseConnection *connection);
00232
00233 private:
00234 void createAdaptor();
00235
00236 class Adaptee;
00237 friend class Adaptee;
00238 struct Private;
00239 friend struct Private;
00240 Private *mPriv;
00241 };
00242
00243 class TP_QT_EXPORT BaseConnectionSimplePresenceInterface : public AbstractConnectionInterface
00244 {
00245 Q_OBJECT
00246 Q_DISABLE_COPY(BaseConnectionSimplePresenceInterface)
00247
00248 public:
00249 static BaseConnectionSimplePresenceInterfacePtr create()
00250 {
00251 return BaseConnectionSimplePresenceInterfacePtr(new BaseConnectionSimplePresenceInterface());
00252 }
00253 template<typename BaseConnectionSimplePresenceInterfaceSubclass>
00254 static SharedPtr<BaseConnectionSimplePresenceInterfaceSubclass> create()
00255 {
00256 return SharedPtr<BaseConnectionSimplePresenceInterfaceSubclass>(
00257 new BaseConnectionSimplePresenceInterfaceSubclass());
00258 }
00259
00260 virtual ~BaseConnectionSimplePresenceInterface();
00261
00262 QVariantMap immutableProperties() const;
00263
00264 Tp::SimpleStatusSpecMap statuses() const;
00265 void setStatuses(const Tp::SimpleStatusSpecMap &statuses);
00266
00267 uint maximumStatusMessageLength() const;
00268 void setMaximumStatusMessageLength(uint maximumStatusMessageLength);
00269
00270 typedef Callback3<uint, const QString &, const QString &, DBusError*> SetPresenceCallback;
00271 void setSetPresenceCallback(const SetPresenceCallback &cb);
00272
00273 void setPresences(const Tp::SimpleContactPresences &presences);
00274
00275 Tp::SimpleContactPresences getPresences(const Tp::UIntList &contacts);
00276
00277 protected:
00278 BaseConnectionSimplePresenceInterface();
00279
00280 private:
00281 void createAdaptor();
00282
00283 class Adaptee;
00284 friend class Adaptee;
00285 struct Private;
00286 friend struct Private;
00287 Private *mPriv;
00288 };
00289
00290 class TP_QT_EXPORT BaseConnectionContactListInterface : public AbstractConnectionInterface
00291 {
00292 Q_OBJECT
00293 Q_DISABLE_COPY(BaseConnectionContactListInterface)
00294
00295 public:
00296 static BaseConnectionContactListInterfacePtr create()
00297 {
00298 return BaseConnectionContactListInterfacePtr(new BaseConnectionContactListInterface());
00299 }
00300 template<typename BaseConnectionContactListInterfaceSubclass>
00301 static SharedPtr<BaseConnectionContactListInterfaceSubclass> create()
00302 {
00303 return SharedPtr<BaseConnectionContactListInterfaceSubclass>(
00304 new BaseConnectionContactListInterfaceSubclass());
00305 }
00306
00307 virtual ~BaseConnectionContactListInterface();
00308
00309 QVariantMap immutableProperties() const;
00310
00311 uint contactListState() const;
00312 void setContactListState(uint contactListState);
00313
00314 bool contactListPersists() const;
00315 void setContactListPersists(bool contactListPersists);
00316
00317 bool canChangeContactList() const;
00318 void setCanChangeContactList(bool canChangeContactList);
00319
00320 bool requestUsesMessage() const;
00321 void setRequestUsesMessage(bool requestUsesMessage);
00322
00323 bool downloadAtConnection() const;
00324 void setDownloadAtConnection(bool downloadAtConnection);
00325
00326 typedef Callback3<Tp::ContactAttributesMap, const QStringList &, bool, DBusError*> GetContactListAttributesCallback;
00327 void setGetContactListAttributesCallback(const GetContactListAttributesCallback &cb);
00328 Tp::ContactAttributesMap getContactListAttributes(const QStringList &interfaces, bool hold, DBusError *error);
00329
00330 typedef Callback3<void, const Tp::UIntList &, const QString &, DBusError*> RequestSubscriptionCallback;
00331 void setRequestSubscriptionCallback(const RequestSubscriptionCallback &cb);
00332 void requestSubscription(const Tp::UIntList &contacts, const QString &message, DBusError *error);
00333
00334 typedef Callback2<void, const Tp::UIntList &, DBusError*> AuthorizePublicationCallback;
00335 void setAuthorizePublicationCallback(const AuthorizePublicationCallback &cb);
00336 void authorizePublication(const Tp::UIntList &contacts, DBusError *error);
00337
00338 typedef Callback2<void, const Tp::UIntList &, DBusError*> RemoveContactsCallback;
00339 void setRemoveContactsCallback(const RemoveContactsCallback &cb);
00340 void removeContacts(const Tp::UIntList &contacts, DBusError *error);
00341
00342 typedef Callback2<void, const Tp::UIntList &, DBusError*> UnsubscribeCallback;
00343 void setUnsubscribeCallback(const UnsubscribeCallback &cb);
00344 void unsubscribe(const Tp::UIntList &contacts, DBusError *error);
00345
00346 typedef Callback2<void, const Tp::UIntList &, DBusError*> UnpublishCallback;
00347 void setUnpublishCallback(const UnpublishCallback &cb);
00348 void unpublish(const Tp::UIntList &contacts, DBusError *error);
00349
00350 typedef Callback1<void, DBusError*> DownloadCallback;
00351 void setDownloadCallback(const DownloadCallback &cb);
00352 void download(DBusError *error);
00353
00354 void contactsChangedWithID(const Tp::ContactSubscriptionMap &changes, const Tp::HandleIdentifierMap &identifiers, const Tp::HandleIdentifierMap &removals);
00355
00356 protected:
00357 BaseConnectionContactListInterface();
00358
00359 private:
00360 void createAdaptor();
00361
00362 class Adaptee;
00363 friend class Adaptee;
00364 struct Private;
00365 friend struct Private;
00366 Private *mPriv;
00367 };
00368
00369 class TP_QT_EXPORT BaseConnectionContactInfoInterface : public AbstractConnectionInterface
00370 {
00371 Q_OBJECT
00372 Q_DISABLE_COPY(BaseConnectionContactInfoInterface)
00373
00374 public:
00375 static BaseConnectionContactInfoInterfacePtr create()
00376 {
00377 return BaseConnectionContactInfoInterfacePtr(new BaseConnectionContactInfoInterface());
00378 }
00379 template<typename BaseConnectionContactInfoInterfaceSubclass>
00380 static SharedPtr<BaseConnectionContactInfoInterfaceSubclass> create()
00381 {
00382 return SharedPtr<BaseConnectionContactInfoInterfaceSubclass>(
00383 new BaseConnectionContactInfoInterfaceSubclass());
00384 }
00385
00386 virtual ~BaseConnectionContactInfoInterface();
00387
00388 QVariantMap immutableProperties() const;
00389
00390 Tp::ContactInfoFlags contactInfoFlags() const;
00391 void setContactInfoFlags(const Tp::ContactInfoFlags &contactInfoFlags);
00392
00393 Tp::FieldSpecs supportedFields() const;
00394 void setSupportedFields(const Tp::FieldSpecs &supportedFields);
00395
00396 typedef Callback2<Tp::ContactInfoMap, const Tp::UIntList &, DBusError*> GetContactInfoCallback;
00397 void setGetContactInfoCallback(const GetContactInfoCallback &cb);
00398 Tp::ContactInfoMap getContactInfo(const Tp::UIntList &contacts, DBusError *error);
00399
00400 typedef Callback2<void, const Tp::UIntList &, DBusError*> RefreshContactInfoCallback;
00401 void setRefreshContactInfoCallback(const RefreshContactInfoCallback &cb);
00402 void refreshContactInfo(const Tp::UIntList &contacts, DBusError *error);
00403
00404 typedef Callback2<Tp::ContactInfoFieldList, uint, DBusError*> RequestContactInfoCallback;
00405 void setRequestContactInfoCallback(const RequestContactInfoCallback &cb);
00406 Tp::ContactInfoFieldList requestContactInfo(uint contact, DBusError *error);
00407
00408 typedef Callback2<void, const Tp::ContactInfoFieldList &, DBusError*> SetContactInfoCallback;
00409 void setSetContactInfoCallback(const SetContactInfoCallback &cb);
00410 void setContactInfo(const Tp::ContactInfoFieldList &contactInfo, DBusError *error);
00411
00412 void contactInfoChanged(uint contact, const Tp::ContactInfoFieldList &contactInfo);
00413
00414 protected:
00415 BaseConnectionContactInfoInterface();
00416
00417 private:
00418 void createAdaptor();
00419
00420 class Adaptee;
00421 friend class Adaptee;
00422 struct Private;
00423 friend struct Private;
00424 Private *mPriv;
00425 };
00426
00427 class TP_QT_EXPORT BaseConnectionAddressingInterface : public AbstractConnectionInterface
00428 {
00429 Q_OBJECT
00430 Q_DISABLE_COPY(BaseConnectionAddressingInterface)
00431
00432 public:
00433 static BaseConnectionAddressingInterfacePtr create() {
00434 return BaseConnectionAddressingInterfacePtr(new BaseConnectionAddressingInterface());
00435 }
00436 template<typename BaseConnectionAddressingInterfaceSubclass>
00437 static SharedPtr<BaseConnectionAddressingInterfaceSubclass> create() {
00438 return SharedPtr<BaseConnectionAddressingInterfaceSubclass>(
00439 new BaseConnectionAddressingInterfaceSubclass());
00440 }
00441
00442 virtual ~BaseConnectionAddressingInterface();
00443
00444 QVariantMap immutableProperties() const;
00445
00446
00447
00448 typedef Callback6 < void, const QString&, const QStringList&, const QStringList&,
00449 Tp::AddressingNormalizationMap&, Tp::ContactAttributesMap&, DBusError* > GetContactsByVCardFieldCallback;
00450 void setGetContactsByVCardFieldCallback(const GetContactsByVCardFieldCallback &cb);
00451
00452 typedef Callback5 < void, const QStringList&, const QStringList&,
00453 Tp::AddressingNormalizationMap&, Tp::ContactAttributesMap&, DBusError* > GetContactsByURICallback;
00454 void setGetContactsByURICallback(const GetContactsByURICallback &cb);
00455
00456 protected:
00457 BaseConnectionAddressingInterface();
00458
00459 private:
00460 void createAdaptor();
00461
00462 class Adaptee;
00463 friend class Adaptee;
00464 struct Private;
00465 friend struct Private;
00466 Private *mPriv;
00467 };
00468
00469 class TP_QT_EXPORT BaseConnectionAliasingInterface : public AbstractConnectionInterface
00470 {
00471 Q_OBJECT
00472 Q_DISABLE_COPY(BaseConnectionAliasingInterface)
00473
00474 public:
00475 static BaseConnectionAliasingInterfacePtr create()
00476 {
00477 return BaseConnectionAliasingInterfacePtr(new BaseConnectionAliasingInterface());
00478 }
00479 template<typename BaseConnectionAliasingInterfaceSubclass>
00480 static SharedPtr<BaseConnectionAliasingInterfaceSubclass> create()
00481 {
00482 return SharedPtr<BaseConnectionAliasingInterfaceSubclass>(
00483 new BaseConnectionAliasingInterfaceSubclass());
00484 }
00485
00486 virtual ~BaseConnectionAliasingInterface();
00487
00488 QVariantMap immutableProperties() const;
00489
00490 typedef Callback1<Tp::ConnectionAliasFlags, DBusError*> GetAliasFlagsCallback;
00491 void setGetAliasFlagsCallback(const GetAliasFlagsCallback &cb);
00492 Tp::ConnectionAliasFlags getAliasFlags(DBusError *error);
00493
00494 typedef Callback2<QStringList, const Tp::UIntList &, DBusError*> RequestAliasesCallback;
00495 void setRequestAliasesCallback(const RequestAliasesCallback &cb);
00496 QStringList requestAliases(const Tp::UIntList &contacts, DBusError *error);
00497
00498 typedef Callback2<Tp::AliasMap, const Tp::UIntList &, DBusError*> GetAliasesCallback;
00499 void setGetAliasesCallback(const GetAliasesCallback &cb);
00500 Tp::AliasMap getAliases(const Tp::UIntList &contacts, DBusError *error);
00501
00502 typedef Callback2<void, const Tp::AliasMap &, DBusError*> SetAliasesCallback;
00503 void setSetAliasesCallback(const SetAliasesCallback &cb);
00504 void setAliases(const Tp::AliasMap &aliases, DBusError *error);
00505
00506 void aliasesChanged(const Tp::AliasPairList &aliases);
00507
00508 protected:
00509 BaseConnectionAliasingInterface();
00510
00511 private:
00512 void createAdaptor();
00513
00514 class Adaptee;
00515 friend class Adaptee;
00516 struct Private;
00517 friend struct Private;
00518 Private *mPriv;
00519 };
00520
00521 class TP_QT_EXPORT BaseConnectionAvatarsInterface : public AbstractConnectionInterface
00522 {
00523 Q_OBJECT
00524 Q_DISABLE_COPY(BaseConnectionAvatarsInterface)
00525
00526 public:
00527 static BaseConnectionAvatarsInterfacePtr create()
00528 {
00529 return BaseConnectionAvatarsInterfacePtr(new BaseConnectionAvatarsInterface());
00530 }
00531 template<typename BaseConnectionAvatarsInterfaceSubclass>
00532 static SharedPtr<BaseConnectionAvatarsInterfaceSubclass> create()
00533 {
00534 return SharedPtr<BaseConnectionAvatarsInterfaceSubclass>(
00535 new BaseConnectionAvatarsInterfaceSubclass());
00536 }
00537
00538 virtual ~BaseConnectionAvatarsInterface();
00539
00540 QVariantMap immutableProperties() const;
00541
00542 AvatarSpec avatarDetails() const;
00543 void setAvatarDetails(const AvatarSpec &spec);
00544
00545 typedef Callback2<Tp::AvatarTokenMap, const Tp::UIntList &, DBusError*> GetKnownAvatarTokensCallback;
00546 void setGetKnownAvatarTokensCallback(const GetKnownAvatarTokensCallback &cb);
00547 Tp::AvatarTokenMap getKnownAvatarTokens(const Tp::UIntList &contacts, DBusError *error);
00548
00549 typedef Callback2<void, const Tp::UIntList &, DBusError*> RequestAvatarsCallback;
00550 void setRequestAvatarsCallback(const RequestAvatarsCallback &cb);
00551 void requestAvatars(const Tp::UIntList &contacts, DBusError *error);
00552
00553 typedef Callback3<QString, const QByteArray &, const QString &, DBusError*> SetAvatarCallback;
00554 void setSetAvatarCallback(const SetAvatarCallback &cb);
00555 QString setAvatar(const QByteArray &avatar, const QString &mimeType, DBusError *error);
00556
00557 typedef Callback1<void, DBusError*> ClearAvatarCallback;
00558 void setClearAvatarCallback(const ClearAvatarCallback &cb);
00559 void clearAvatar(DBusError *error);
00560
00561 void avatarUpdated(uint contact, const QString &newAvatarToken);
00562 void avatarRetrieved(uint contact, const QString &token, const QByteArray &avatar, const QString &type);
00563
00564 protected:
00565 BaseConnectionAvatarsInterface();
00566
00567 private:
00568 void createAdaptor();
00569
00570 class Adaptee;
00571 friend class Adaptee;
00572 struct Private;
00573 friend struct Private;
00574 Private *mPriv;
00575 };
00576
00577 class TP_QT_EXPORT BaseConnectionClientTypesInterface : public AbstractConnectionInterface
00578 {
00579 Q_OBJECT
00580 Q_DISABLE_COPY(BaseConnectionClientTypesInterface)
00581
00582 public:
00583 static BaseConnectionClientTypesInterfacePtr create()
00584 {
00585 return BaseConnectionClientTypesInterfacePtr(new BaseConnectionClientTypesInterface());
00586 }
00587 template<typename BaseConnectionClientTypesInterfaceSubclass>
00588 static SharedPtr<BaseConnectionClientTypesInterfaceSubclass> create()
00589 {
00590 return SharedPtr<BaseConnectionClientTypesInterfaceSubclass>(
00591 new BaseConnectionClientTypesInterfaceSubclass());
00592 }
00593
00594 virtual ~BaseConnectionClientTypesInterface();
00595
00596 QVariantMap immutableProperties() const;
00597
00598 typedef Callback2<Tp::ContactClientTypes, const Tp::UIntList &, DBusError*> GetClientTypesCallback;
00599 void setGetClientTypesCallback(const GetClientTypesCallback &cb);
00600 Tp::ContactClientTypes getClientTypes(const Tp::UIntList &contacts, DBusError *error);
00601
00602 typedef Callback2<QStringList, uint, DBusError*> RequestClientTypesCallback;
00603 void setRequestClientTypesCallback(const RequestClientTypesCallback &cb);
00604 QStringList requestClientTypes(uint contact, DBusError *error);
00605
00606 void clientTypesUpdated(uint contact, const QStringList &clientTypes);
00607
00608 protected:
00609 BaseConnectionClientTypesInterface();
00610
00611 private:
00612 void createAdaptor();
00613
00614 class Adaptee;
00615 friend class Adaptee;
00616 struct Private;
00617 friend struct Private;
00618 Private *mPriv;
00619 };
00620
00621 class TP_QT_EXPORT BaseConnectionContactCapabilitiesInterface : public AbstractConnectionInterface
00622 {
00623 Q_OBJECT
00624 Q_DISABLE_COPY(BaseConnectionContactCapabilitiesInterface)
00625
00626 public:
00627 static BaseConnectionContactCapabilitiesInterfacePtr create()
00628 {
00629 return BaseConnectionContactCapabilitiesInterfacePtr(new BaseConnectionContactCapabilitiesInterface());
00630 }
00631 template<typename BaseConnectionContactCapabilitiesInterfaceSubclass>
00632 static SharedPtr<BaseConnectionContactCapabilitiesInterfaceSubclass> create()
00633 {
00634 return SharedPtr<BaseConnectionContactCapabilitiesInterfaceSubclass>(
00635 new BaseConnectionContactCapabilitiesInterfaceSubclass());
00636 }
00637
00638 virtual ~BaseConnectionContactCapabilitiesInterface();
00639
00640 QVariantMap immutableProperties() const;
00641
00642 typedef Callback2<void, const Tp::HandlerCapabilitiesList &, DBusError*> UpdateCapabilitiesCallback;
00643 void setUpdateCapabilitiesCallback(const UpdateCapabilitiesCallback &cb);
00644 void updateCapabilities(const Tp::HandlerCapabilitiesList &handlerCapabilities, DBusError *error);
00645
00646 typedef Callback2<Tp::ContactCapabilitiesMap, const Tp::UIntList &, DBusError*> GetContactCapabilitiesCallback;
00647 void setGetContactCapabilitiesCallback(const GetContactCapabilitiesCallback &cb);
00648 Tp::ContactCapabilitiesMap getContactCapabilities(const Tp::UIntList &handles, DBusError *error);
00649
00650 void contactCapabilitiesChanged(const Tp::ContactCapabilitiesMap &caps);
00651
00652 protected:
00653 BaseConnectionContactCapabilitiesInterface();
00654
00655 private:
00656 void createAdaptor();
00657
00658 class Adaptee;
00659 friend class Adaptee;
00660 struct Private;
00661 friend struct Private;
00662 Private *mPriv;
00663 };
00664
00665 }
00666
00667 #endif