23 #ifndef _TelepathyQt_contact_manager_h_HEADER_GUARD_
24 #define _TelepathyQt_contact_manager_h_HEADER_GUARD_
26 #ifndef IN_TP_QT_HEADER
27 #error IN_TP_QT_HEADER
30 #include <TelepathyQt/Channel>
31 #include <TelepathyQt/Contact>
32 #include <TelepathyQt/Feature>
33 #include <TelepathyQt/Object>
34 #include <TelepathyQt/ReferencedHandles>
35 #include <TelepathyQt/Types>
40 #include <QStringList>
41 #include <QVariantMap>
47 class PendingContacts;
48 class PendingOperation;
58 ConnectionPtr connection()
const;
64 Contacts allKnownContacts()
const;
65 QStringList allKnownGroups()
const;
70 Contacts groupContacts(
const QString &group)
const;
72 const QList<ContactPtr> &contacts);
74 const QList<ContactPtr> &contacts);
76 bool canRequestPresenceSubscription()
const;
77 bool subscriptionRequestHasMessage()
const;
79 const QList<ContactPtr> &contacts,
80 const QString &message = QString());
81 bool canRemovePresenceSubscription()
const;
82 bool subscriptionRemovalHasMessage()
const;
83 bool canRescindPresenceSubscriptionRequest()
const;
84 bool subscriptionRescindingHasMessage()
const;
86 const QList<ContactPtr> &contacts,
87 const QString &message = QString());
88 bool canAuthorizePresencePublication()
const;
89 bool publicationAuthorizationHasMessage()
const;
91 const QList<ContactPtr> &contacts,
92 const QString &message = QString());
93 bool publicationRejectionHasMessage()
const;
94 bool canRemovePresencePublication()
const;
95 bool publicationRemovalHasMessage()
const;
97 const QList<ContactPtr> &contacts,
98 const QString &message = QString());
100 const QList<ContactPtr> &contacts,
101 const QString &message = QString());
103 bool canBlockContacts()
const;
104 bool canReportAbuse()
const;
106 PendingOperation *blockContactsAndReportAbuse(
const QList<ContactPtr> &contacts);
116 PendingContacts *contactsForIdentifiers(
const QStringList &identifiers,
120 const QStringList &vcardAddresses,
128 void requestContactAvatars(
const QList<ContactPtr> &contacts);
135 void presencePublicationRequested(
const Tp::Contacts &contacts);
137 void groupAdded(
const QString &group);
138 void groupRenamed(
const QString &oldGroup,
const QString &newGroup);
139 void groupRemoved(
const QString &group);
141 void groupMembersChanged(
const QString &group,
142 const Tp::Contacts &groupMembersAdded,
143 const Tp::Contacts &groupMembersRemoved,
146 void allKnownContactsChanged(
const Tp::Contacts &contactsAdded,
147 const Tp::Contacts &contactsRemoved,
152 TP_QT_NO_EXPORT
void doRequestAvatars();
153 TP_QT_NO_EXPORT
void onAvatarUpdated(uint,
const QString &);
154 TP_QT_NO_EXPORT
void onAvatarRetrieved(uint,
const QString &,
const QByteArray &,
const QString &);
157 TP_QT_NO_EXPORT
void onLocationUpdated(uint,
const QVariantMap &);
159 TP_QT_NO_EXPORT
void onClientTypesUpdated(uint,
const QStringList &);
160 TP_QT_NO_EXPORT
void doRefreshInfo();
163 class PendingRefreshContactInfo;
168 friend class PendingRefreshContactInfo;
173 TP_QT_NO_EXPORT ContactPtr lookupContactByHandle(uint handle);
177 const QVariantMap &attributes);
178 TP_QT_NO_EXPORT ContactPtr ensureContact(uint bareHandle,
179 const QString &
id,
const Features &features);
181 TP_QT_NO_EXPORT
static QString featureToInterface(
const Feature &feature);
182 TP_QT_NO_EXPORT
void ensureTracking(
const Feature &feature);
186 TP_QT_NO_EXPORT
void resetRoster();
191 friend struct Private;