Home · All Classes · All Namespaces · Modules · Functions · Files
base-connection.h
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 &parameters,
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 &parameters,
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 &parameters);
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


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