00001
00023 #ifndef _TelepathyQt_account_h_HEADER_GUARD_
00024 #define _TelepathyQt_account_h_HEADER_GUARD_
00025
00026 #ifndef IN_TP_QT_HEADER
00027 #error IN_TP_QT_HEADER
00028 #endif
00029
00030 #include <TelepathyQt/_gen/cli-account.h>
00031
00032 #include <TelepathyQt/ChannelRequestHints>
00033 #include <TelepathyQt/Connection>
00034 #include <TelepathyQt/ConnectionCapabilities>
00035 #include <TelepathyQt/ConnectionFactory>
00036 #include <TelepathyQt/ContactFactory>
00037 #include <TelepathyQt/ChannelFactory>
00038 #include <TelepathyQt/ChannelDispatcherInterface>
00039 #include <TelepathyQt/DBus>
00040 #include <TelepathyQt/DBusProxy>
00041 #include <TelepathyQt/FileTransferChannelCreationProperties>
00042 #include <TelepathyQt/OptionalInterfaceFactory>
00043 #include <TelepathyQt/Presence>
00044 #include <TelepathyQt/PresenceSpec>
00045 #include <TelepathyQt/ProtocolInfo>
00046 #include <TelepathyQt/ReadinessHelper>
00047 #include <TelepathyQt/Types>
00048 #include <TelepathyQt/Constants>
00049 #include <TelepathyQt/SharedPtr>
00050
00051 #include <QSet>
00052 #include <QString>
00053 #include <QStringList>
00054 #include <QVariantMap>
00055
00056 namespace Tp
00057 {
00058
00059 class Account;
00060 class Connection;
00061 class PendingChannel;
00062 class PendingChannelRequest;
00063 class PendingConnection;
00064 class PendingOperation;
00065 class PendingReady;
00066 class PendingStringList;
00067
00068 class TP_QT_EXPORT Account : public StatelessDBusProxy,
00069 public OptionalInterfaceFactory<Account>
00070 {
00071 Q_OBJECT
00072 Q_DISABLE_COPY(Account)
00073 Q_PROPERTY(bool valid READ isValidAccount NOTIFY validityChanged)
00074 Q_PROPERTY(bool enabled READ isEnabled NOTIFY stateChanged)
00075 Q_PROPERTY(QString cmName READ cmName)
00076 Q_PROPERTY(QString protocolName READ protocolName)
00077 Q_PROPERTY(QString serviceName READ serviceName NOTIFY serviceNameChanged)
00078 Q_PROPERTY(ProfilePtr profile READ profile NOTIFY profileChanged)
00079 Q_PROPERTY(QString displayName READ displayName NOTIFY displayNameChanged)
00080 Q_PROPERTY(QString iconName READ iconName NOTIFY iconNameChanged)
00081 Q_PROPERTY(QString nickname READ nickname NOTIFY nicknameChanged)
00082 Q_PROPERTY(AvatarSpec avatarRequirements READ avatarRequirements)
00083 Q_PROPERTY(Avatar avatar READ avatar NOTIFY avatarChanged)
00084 Q_PROPERTY(QVariantMap parameters READ parameters NOTIFY parametersChanged)
00085 Q_PROPERTY(ProtocolInfo protocolInfo READ protocolInfo)
00086 Q_PROPERTY(ConnectionCapabilities capabilities READ capabilities NOTIFY capabilitiesChanged)
00087 Q_PROPERTY(bool hasBeenOnline READ hasBeenOnline)
00088 Q_PROPERTY(bool connectsAutomatically READ connectsAutomatically NOTIFY connectsAutomaticallyPropertyChanged)
00089 Q_PROPERTY(ConnectionStatus connectionStatus READ connectionStatus NOTIFY connectionStatusChanged)
00090 Q_PROPERTY(ConnectionStatusReason connectionStatusReason READ connectionStatusReason)
00091 Q_PROPERTY(QString connectionError READ connectionError)
00092 Q_PROPERTY(Tp::Connection::ErrorDetails connectionErrorDetails READ connectionErrorDetails)
00093 Q_PROPERTY(ConnectionPtr connection READ connection NOTIFY connectionChanged)
00094 Q_PROPERTY(bool changingPresence READ isChangingPresence NOTIFY changingPresence)
00095 Q_PROPERTY(Presence automaticPresence READ automaticPresence NOTIFY automaticPresenceChanged)
00096 Q_PROPERTY(Presence currentPresence READ currentPresence NOTIFY currentPresenceChanged)
00097 Q_PROPERTY(Presence requestedPresence READ requestedPresence NOTIFY requestedPresenceChanged)
00098 Q_PROPERTY(bool online READ isOnline NOTIFY onlinenessChanged)
00099 Q_PROPERTY(QString uniqueIdentifier READ uniqueIdentifier)
00100 Q_PROPERTY(QString normalizedName READ normalizedName NOTIFY normalizedNameChanged)
00101
00102 public:
00103 static const Feature FeatureCore;
00104 static const Feature FeatureAvatar;
00105 static const Feature FeatureProtocolInfo;
00106 static const Feature FeatureCapabilities;
00107 static const Feature FeatureProfile;
00108
00109 static AccountPtr create(const QString &busName, const QString &objectPath,
00110 const ConnectionFactoryConstPtr &connectionFactory =
00111 ConnectionFactory::create(QDBusConnection::sessionBus()),
00112 const ChannelFactoryConstPtr &channelFactory =
00113 ChannelFactory::create(QDBusConnection::sessionBus()),
00114 const ContactFactoryConstPtr &contactFactory =
00115 ContactFactory::create());
00116 static AccountPtr create(const QDBusConnection &bus,
00117 const QString &busName, const QString &objectPath,
00118 const ConnectionFactoryConstPtr &connectionFactory,
00119 const ChannelFactoryConstPtr &channelFactory,
00120 const ContactFactoryConstPtr &contactFactory =
00121 ContactFactory::create());
00122 virtual ~Account();
00123
00124 ConnectionFactoryConstPtr connectionFactory() const;
00125 ChannelFactoryConstPtr channelFactory() const;
00126 ContactFactoryConstPtr contactFactory() const;
00127
00128 bool isValidAccount() const;
00129
00130 bool isEnabled() const;
00131 PendingOperation *setEnabled(bool value);
00132
00133 QString cmName() const;
00134
00135 QString protocolName() const;
00136
00137 QString serviceName() const;
00138 PendingOperation *setServiceName(const QString &value);
00139
00140 ProfilePtr profile() const;
00141
00142 QString displayName() const;
00143 PendingOperation *setDisplayName(const QString &value);
00144
00145 QString iconName() const;
00146 PendingOperation *setIconName(const QString &value);
00147
00148 QString nickname() const;
00149 PendingOperation *setNickname(const QString &value);
00150
00151 AvatarSpec avatarRequirements() const;
00152
00153
00154
00155 const Avatar &avatar() const;
00156 PendingOperation *setAvatar(const Avatar &avatar);
00157
00158 QVariantMap parameters() const;
00159 PendingStringList *updateParameters(const QVariantMap &set,
00160 const QStringList &unset);
00161
00162 ProtocolInfo protocolInfo() const;
00163
00164 ConnectionCapabilities capabilities() const;
00165
00166 bool connectsAutomatically() const;
00167 PendingOperation *setConnectsAutomatically(bool value);
00168
00169 bool hasBeenOnline() const;
00170
00171 ConnectionStatus connectionStatus() const;
00172 ConnectionStatusReason connectionStatusReason() const;
00173 QString connectionError() const;
00174 Connection::ErrorDetails connectionErrorDetails() const;
00175 ConnectionPtr connection() const;
00176
00177 bool isChangingPresence() const;
00178
00179 PresenceSpecList allowedPresenceStatuses(bool includeAllStatuses = false) const;
00180 uint maxPresenceStatusMessageLength() const;
00181
00182
00183
00184
00185 Presence automaticPresence() const;
00186 PendingOperation *setAutomaticPresence(const Presence &presence);
00187
00188 Presence currentPresence() const;
00189
00190 Presence requestedPresence() const;
00191 PendingOperation *setRequestedPresence(const Presence &presence);
00192
00193 bool isOnline() const;
00194
00195 QString uniqueIdentifier() const;
00196
00197 QString normalizedName() const;
00198
00199 PendingOperation *reconnect();
00200
00201 PendingOperation *remove();
00202
00203 bool supportsRequestHints() const;
00204 bool requestsSucceedWithChannel() const;
00205
00206 PendingChannelRequest *ensureTextChat(
00207 const QString &contactIdentifier,
00208 const QDateTime &userActionTime = QDateTime::currentDateTime(),
00209 const QString &preferredHandler = QString(),
00210 const ChannelRequestHints &hints = ChannelRequestHints());
00211 PendingChannelRequest *ensureTextChat(
00212 const ContactPtr &contact,
00213 const QDateTime &userActionTime = QDateTime::currentDateTime(),
00214 const QString &preferredHandler = QString(),
00215 const ChannelRequestHints &hints = ChannelRequestHints());
00216
00217 PendingChannelRequest *ensureTextChatroom(
00218 const QString &roomName,
00219 const QDateTime &userActionTime = QDateTime::currentDateTime(),
00220 const QString &preferredHandler = QString(),
00221 const ChannelRequestHints &hints = ChannelRequestHints());
00222
00223 PendingChannelRequest *ensureAudioCall(
00224 const QString &contactIdentifier,
00225 const QString &initialAudioContentName = QString(),
00226 const QDateTime &userActionTime = QDateTime::currentDateTime(),
00227 const QString &preferredHandler = QString(),
00228 const ChannelRequestHints &hints = ChannelRequestHints());
00229 PendingChannelRequest *ensureAudioCall(
00230 const ContactPtr &contact,
00231 const QString &initialAudioContentName = QString(),
00232 const QDateTime &userActionTime = QDateTime::currentDateTime(),
00233 const QString &preferredHandler = QString(),
00234 const ChannelRequestHints &hints = ChannelRequestHints());
00235 PendingChannelRequest *ensureVideoCall(
00236 const QString &contactIdentifier,
00237 const QString &initialVideoContentName = QString(),
00238 const QDateTime &userActionTime = QDateTime::currentDateTime(),
00239 const QString &preferredHandler = QString(),
00240 const ChannelRequestHints &hints = ChannelRequestHints());
00241 PendingChannelRequest *ensureVideoCall(
00242 const ContactPtr &contact,
00243 const QString &initialVideoContentName = QString(),
00244 const QDateTime &userActionTime = QDateTime::currentDateTime(),
00245 const QString &preferredHandler = QString(),
00246 const ChannelRequestHints &hints = ChannelRequestHints());
00247 PendingChannelRequest *ensureAudioVideoCall(
00248 const QString &contactIdentifier,
00249 const QString &initialAudioContentName = QString(),
00250 const QString &initialVideoContentName = QString(),
00251 const QDateTime &userActionTime = QDateTime::currentDateTime(),
00252 const QString &preferredHandler = QString(),
00253 const ChannelRequestHints &hints = ChannelRequestHints());
00254 PendingChannelRequest *ensureAudioVideoCall(
00255 const ContactPtr &contact,
00256 const QString &initialAudioContentName = QString(),
00257 const QString &initialVideoContentName = QString(),
00258 const QDateTime &userActionTime = QDateTime::currentDateTime(),
00259 const QString &preferredHandler = QString(),
00260 const ChannelRequestHints &hints = ChannelRequestHints());
00261
00262 TP_QT_DEPRECATED PendingChannelRequest *ensureStreamedMediaCall(
00263 const QString &contactIdentifier,
00264 const QDateTime &userActionTime = QDateTime::currentDateTime(),
00265 const QString &preferredHandler = QString(),
00266 const ChannelRequestHints &hints = ChannelRequestHints());
00267 TP_QT_DEPRECATED PendingChannelRequest *ensureStreamedMediaCall(
00268 const ContactPtr &contact,
00269 const QDateTime &userActionTime = QDateTime::currentDateTime(),
00270 const QString &preferredHandler = QString(),
00271 const ChannelRequestHints &hints = ChannelRequestHints());
00272 TP_QT_DEPRECATED PendingChannelRequest *ensureStreamedMediaAudioCall(
00273 const QString &contactIdentifier,
00274 const QDateTime &userActionTime = QDateTime::currentDateTime(),
00275 const QString &preferredHandler = QString(),
00276 const ChannelRequestHints &hints = ChannelRequestHints());
00277 TP_QT_DEPRECATED PendingChannelRequest *ensureStreamedMediaAudioCall(
00278 const ContactPtr &contact,
00279 const QDateTime &userActionTime = QDateTime::currentDateTime(),
00280 const QString &preferredHandler = QString(),
00281 const ChannelRequestHints &hints = ChannelRequestHints());
00282 TP_QT_DEPRECATED PendingChannelRequest *ensureStreamedMediaVideoCall(
00283 const QString &contactIdentifier,
00284 bool withAudio = true,
00285 const QDateTime &userActionTime = QDateTime::currentDateTime(),
00286 const QString &preferredHandler = QString(),
00287 const ChannelRequestHints &hints = ChannelRequestHints());
00288 TP_QT_DEPRECATED PendingChannelRequest *ensureStreamedMediaVideoCall(
00289 const ContactPtr &contact,
00290 bool withAudio = false,
00291 const QDateTime &userActionTime = QDateTime::currentDateTime(),
00292 const QString &preferredHandler = QString(),
00293 const ChannelRequestHints &hints = ChannelRequestHints());
00294
00295 PendingChannelRequest *createFileTransfer(
00296 const QString &contactIdentifier,
00297 const FileTransferChannelCreationProperties &properties,
00298 const QDateTime &userActionTime = QDateTime::currentDateTime(),
00299 const QString &preferredHandler = QString(),
00300 const ChannelRequestHints &hints = ChannelRequestHints());
00301 PendingChannelRequest *createFileTransfer(
00302 const ContactPtr &contact,
00303 const FileTransferChannelCreationProperties &properties,
00304 const QDateTime &userActionTime = QDateTime::currentDateTime(),
00305 const QString &preferredHandler = QString(),
00306 const ChannelRequestHints &hints = ChannelRequestHints());
00307
00308 PendingChannelRequest *createStreamTube(
00309 const QString &contactIdentifier,
00310 const QString &service,
00311 const QDateTime &userActionTime = QDateTime::currentDateTime(),
00312 const QString &preferredHandler = QString(),
00313 const ChannelRequestHints &hints = ChannelRequestHints());
00314 PendingChannelRequest *createStreamTube(
00315 const ContactPtr &contact,
00316 const QString &service,
00317 const QDateTime &userActionTime = QDateTime::currentDateTime(),
00318 const QString &preferredHandler = QString(),
00319 const ChannelRequestHints &hints = ChannelRequestHints());
00320
00321 PendingChannelRequest *createDBusTube(
00322 const QString &contactIdentifier,
00323 const QString &serviceName,
00324 const QDateTime &userActionTime = QDateTime::currentDateTime(),
00325 const QString &preferredHandler = QString(),
00326 const ChannelRequestHints &hints = ChannelRequestHints());
00327 PendingChannelRequest *createDBusTube(
00328 const ContactPtr &contact,
00329 const QString &serviceName,
00330 const QDateTime &userActionTime = QDateTime::currentDateTime(),
00331 const QString &preferredHandler = QString(),
00332 const ChannelRequestHints &hints = ChannelRequestHints());
00333
00334 TP_QT_DEPRECATED PendingChannelRequest *createConferenceStreamedMediaCall(
00335 const QList<ChannelPtr> &channels,
00336 const QStringList &initialInviteeContactsIdentifiers = QStringList(),
00337 const QDateTime &userActionTime = QDateTime::currentDateTime(),
00338 const QString &preferredHandler = QString(),
00339 const ChannelRequestHints &hints = ChannelRequestHints());
00340 TP_QT_DEPRECATED PendingChannelRequest *createConferenceStreamedMediaCall(
00341 const QList<ChannelPtr> &channels,
00342 const QList<ContactPtr> &initialInviteeContacts = QList<ContactPtr>(),
00343 const QDateTime &userActionTime = QDateTime::currentDateTime(),
00344 const QString &preferredHandler = QString(),
00345 const ChannelRequestHints &hints = ChannelRequestHints());
00346
00347 PendingChannelRequest *createConferenceTextChat(
00348 const QList<ChannelPtr> &channels,
00349 const QList<ContactPtr> &initialInviteeContacts = QList<ContactPtr>(),
00350 const QDateTime &userActionTime = QDateTime::currentDateTime(),
00351 const QString &preferredHandler = QString(),
00352 const ChannelRequestHints &hints = ChannelRequestHints());
00353 PendingChannelRequest *createConferenceTextChat(
00354 const QList<ChannelPtr> &channels,
00355 const QStringList &initialInviteeContactsIdentifiers = QStringList(),
00356 const QDateTime &userActionTime = QDateTime::currentDateTime(),
00357 const QString &preferredHandler = QString(),
00358 const ChannelRequestHints &hints = ChannelRequestHints());
00359
00360 PendingChannelRequest *createConferenceTextChatroom(
00361 const QString &roomName,
00362 const QList<ChannelPtr> &channels,
00363 const QStringList &initialInviteeContactsIdentifiers = QStringList(),
00364 const QDateTime &userActionTime = QDateTime::currentDateTime(),
00365 const QString &preferredHandler = QString(),
00366 const ChannelRequestHints &hints = ChannelRequestHints());
00367 PendingChannelRequest *createConferenceTextChatroom(
00368 const QString &roomName,
00369 const QList<ChannelPtr> &channels,
00370 const QList<ContactPtr> &initialInviteeContacts = QList<ContactPtr>(),
00371 const QDateTime &userActionTime = QDateTime::currentDateTime(),
00372 const QString &preferredHandler = QString(),
00373 const ChannelRequestHints &hints = ChannelRequestHints());
00374
00375 PendingChannelRequest *createContactSearch(
00376 const QString &server,
00377 uint limit = 0,
00378 const QDateTime &userActionTime = QDateTime::currentDateTime(),
00379 const QString &preferredHandler = QString(),
00380 const ChannelRequestHints &hints = ChannelRequestHints());
00381
00382 PendingChannel *ensureAndHandleTextChat(
00383 const QString &contactIdentifier,
00384 const QDateTime &userActionTime = QDateTime::currentDateTime());
00385 PendingChannel *ensureAndHandleTextChat(
00386 const ContactPtr &contact,
00387 const QDateTime &userActionTime = QDateTime::currentDateTime());
00388
00389 PendingChannel *ensureAndHandleTextChatroom(
00390 const QString &roomName,
00391 const QDateTime &userActionTime = QDateTime::currentDateTime());
00392
00393 PendingChannel *ensureAndHandleAudioCall(
00394 const QString &contactIdentifier,
00395 const QString &initialAudioContentName = QString(),
00396 const QDateTime &userActionTime = QDateTime::currentDateTime());
00397 PendingChannel *ensureAndHandleAudioCall(
00398 const ContactPtr &contact,
00399 const QString &initialAudioContentName = QString(),
00400 const QDateTime &userActionTime = QDateTime::currentDateTime());
00401 PendingChannel *ensureAndHandleVideoCall(
00402 const QString &contactIdentifier,
00403 const QString &initialVideoContentName = QString(),
00404 const QDateTime &userActionTime = QDateTime::currentDateTime());
00405 PendingChannel *ensureAndHandleVideoCall(
00406 const ContactPtr &contact,
00407 const QString &initialVideoContentName = QString(),
00408 const QDateTime &userActionTime = QDateTime::currentDateTime());
00409 PendingChannel *ensureAndHandleAudioVideoCall(
00410 const QString &contactIdentifier,
00411 const QString &initialAudioContentName = QString(),
00412 const QString &initialVideoContentName = QString(),
00413 const QDateTime &userActionTime = QDateTime::currentDateTime());
00414 PendingChannel *ensureAndHandleAudioVideoCall(
00415 const ContactPtr &contact,
00416 const QString &initialAudioContentName = QString(),
00417 const QString &initialVideoContentName = QString(),
00418 const QDateTime &userActionTime = QDateTime::currentDateTime());
00419
00420 TP_QT_DEPRECATED PendingChannel *ensureAndHandleStreamedMediaCall(
00421 const QString &contactIdentifier,
00422 const QDateTime &userActionTime = QDateTime::currentDateTime());
00423 TP_QT_DEPRECATED PendingChannel *ensureAndHandleStreamedMediaCall(
00424 const ContactPtr &contact,
00425 const QDateTime &userActionTime = QDateTime::currentDateTime());
00426
00427 TP_QT_DEPRECATED PendingChannel *ensureAndHandleStreamedMediaAudioCall(
00428 const QString &contactIdentifier,
00429 const QDateTime &userActionTime = QDateTime::currentDateTime());
00430 TP_QT_DEPRECATED PendingChannel *ensureAndHandleStreamedMediaAudioCall(
00431 const ContactPtr &contact,
00432 const QDateTime &userActionTime = QDateTime::currentDateTime());
00433
00434 TP_QT_DEPRECATED PendingChannel *ensureAndHandleStreamedMediaVideoCall(
00435 const QString &contactIdentifier,
00436 bool withAudio = true,
00437 const QDateTime &userActionTime = QDateTime::currentDateTime());
00438 TP_QT_DEPRECATED PendingChannel *ensureAndHandleStreamedMediaVideoCall(
00439 const ContactPtr &contact,
00440 bool withAudio = true,
00441 const QDateTime &userActionTime = QDateTime::currentDateTime());
00442
00443 PendingChannel *createAndHandleFileTransfer(
00444 const QString &contactIdentifier,
00445 const FileTransferChannelCreationProperties &properties,
00446 const QDateTime &userActionTime = QDateTime::currentDateTime());
00447 PendingChannel *createAndHandleFileTransfer(
00448 const ContactPtr &contact,
00449 const FileTransferChannelCreationProperties &properties,
00450 const QDateTime &userActionTime = QDateTime::currentDateTime());
00451
00452 PendingChannel *createAndHandleStreamTube(
00453 const QString &contactIdentifier,
00454 const QString &service,
00455 const QDateTime &userActionTime = QDateTime::currentDateTime());
00456 PendingChannel *createAndHandleStreamTube(
00457 const ContactPtr &contact,
00458 const QString &service,
00459 const QDateTime &userActionTime = QDateTime::currentDateTime());
00460
00461 PendingChannel *createAndHandleDBusTube(
00462 const QString &contactIdentifier,
00463 const QString &serviceName,
00464 const QDateTime &userActionTime = QDateTime::currentDateTime());
00465 PendingChannel *createAndHandleDBusTube(
00466 const ContactPtr &contact,
00467 const QString &serviceName,
00468 const QDateTime &userActionTime = QDateTime::currentDateTime());
00469
00470 PendingChannel *createAndHandleConferenceTextChat(
00471 const QList<ChannelPtr> &channels,
00472 const QList<ContactPtr> &initialInviteeContacts = QList<ContactPtr>(),
00473 const QDateTime &userActionTime = QDateTime::currentDateTime());
00474 PendingChannel *createAndHandleConferenceTextChat(
00475 const QList<ChannelPtr> &channels,
00476 const QStringList &initialInviteeContactsIdentifiers = QStringList(),
00477 const QDateTime &userActionTime = QDateTime::currentDateTime());
00478
00479 PendingChannel *createAndHandleConferenceTextChatroom(
00480 const QString &roomName,
00481 const QList<ChannelPtr> &channels,
00482 const QStringList &initialInviteeContactsIdentifiers = QStringList(),
00483 const QDateTime &userActionTime = QDateTime::currentDateTime());
00484 PendingChannel *createAndHandleConferenceTextChatroom(
00485 const QString &roomName,
00486 const QList<ChannelPtr> &channels,
00487 const QList<ContactPtr> &initialInviteeContacts = QList<ContactPtr>(),
00488 const QDateTime &userActionTime = QDateTime::currentDateTime());
00489
00490 TP_QT_DEPRECATED PendingChannel *createAndHandleConferenceStreamedMediaCall(
00491 const QList<ChannelPtr> &channels,
00492 const QStringList &initialInviteeContactsIdentifiers = QStringList(),
00493 const QDateTime &userActionTime = QDateTime::currentDateTime());
00494 TP_QT_DEPRECATED PendingChannel *createAndHandleConferenceStreamedMediaCall(
00495 const QList<ChannelPtr> &channels,
00496 const QList<ContactPtr> &initialInviteeContacts = QList<ContactPtr>(),
00497 const QDateTime &userActionTime = QDateTime::currentDateTime());
00498
00499 PendingChannel *createAndHandleContactSearch(
00500 const QString &server = QString(),
00501 uint limit = 0,
00502 const QDateTime &userActionTime = QDateTime::currentDateTime());
00503
00504
00505 PendingChannelRequest *createChannel(
00506 const QVariantMap &requestedProperties,
00507 const QDateTime &userActionTime = QDateTime::currentDateTime(),
00508 const QString &preferredHandler = QString(),
00509 const ChannelRequestHints &hints = ChannelRequestHints());
00510
00511 PendingChannelRequest *ensureChannel(
00512 const QVariantMap &requestedProperties,
00513 const QDateTime &userActionTime = QDateTime::currentDateTime(),
00514 const QString &preferredHandler = QString(),
00515 const ChannelRequestHints &hints = ChannelRequestHints());
00516
00517 PendingChannel *createAndHandleChannel(
00518 const QVariantMap &requestedProperties,
00519 const QDateTime &userActionTime);
00520 PendingChannel *ensureAndHandleChannel(
00521 const QVariantMap &requestedProperties,
00522 const QDateTime &userActionTime);
00523
00524 Q_SIGNALS:
00525 void removed();
00526 void serviceNameChanged(const QString &serviceName);
00527 void profileChanged(const Tp::ProfilePtr &profile);
00528 void displayNameChanged(const QString &displayName);
00529 void iconNameChanged(const QString &iconName);
00530 void nicknameChanged(const QString &nickname);
00531 void normalizedNameChanged(const QString &normalizedName);
00532 void validityChanged(bool validity);
00533 void stateChanged(bool state);
00534 void capabilitiesChanged(const Tp::ConnectionCapabilities &capabilities);
00535 void connectsAutomaticallyPropertyChanged(bool connectsAutomatically);
00536 void firstOnline();
00537 void parametersChanged(const QVariantMap ¶meters);
00538 void changingPresence(bool value);
00539 void automaticPresenceChanged(const Tp::Presence &automaticPresence);
00540 void currentPresenceChanged(const Tp::Presence ¤tPresence);
00541 void requestedPresenceChanged(const Tp::Presence &requestedPresence);
00542 void onlinenessChanged(bool online);
00543 void avatarChanged(const Tp::Avatar &avatar);
00544 void connectionStatusChanged(Tp::ConnectionStatus status);
00545 void connectionChanged(const Tp::ConnectionPtr &connection);
00546
00547 protected:
00548 friend class PendingChannelRequest;
00549
00550 Account(const QDBusConnection &bus,
00551 const QString &busName, const QString &objectPath,
00552 const ConnectionFactoryConstPtr &connectionFactory,
00553 const ChannelFactoryConstPtr &channelFactory,
00554 const ContactFactoryConstPtr &contactFactory,
00555 const Feature &coreFeature);
00556
00557 Client::AccountInterface *baseInterface() const;
00558 Client::ChannelDispatcherInterface *dispatcherInterface() const;
00559
00560 private Q_SLOTS:
00561 TP_QT_NO_EXPORT void onDispatcherIntrospected(Tp::PendingOperation *op);
00562 TP_QT_NO_EXPORT void gotMainProperties(QDBusPendingCallWatcher *);
00563 TP_QT_NO_EXPORT void gotAvatar(QDBusPendingCallWatcher *);
00564 TP_QT_NO_EXPORT void onAvatarChanged();
00565 TP_QT_NO_EXPORT void onConnectionManagerReady(Tp::PendingOperation *);
00566 TP_QT_NO_EXPORT void onConnectionReady(Tp::PendingOperation *);
00567 TP_QT_NO_EXPORT void onPropertyChanged(const QVariantMap &delta);
00568 TP_QT_NO_EXPORT void onRemoved();
00569 TP_QT_NO_EXPORT void onConnectionBuilt(Tp::PendingOperation *);
00570
00571 private:
00572 struct Private;
00573 friend struct Private;
00574
00575 Private *mPriv;
00576 };
00577
00578 }
00579
00580 #endif