[Telepathy-commits] [telepathy-qt4/master] AccountManager: Use QExplicitlySharedDataPointer for accounts.

Andre Moreira Magalhaes (andrunko) andre.magalhaes at collabora.co.uk
Wed Mar 18 09:34:11 PDT 2009


---
 TelepathyQt4/Client/account-manager.cpp |   19 +++++++++----------
 TelepathyQt4/Client/account-manager.h   |   13 ++++++-------
 TelepathyQt4/Client/account.h           |    3 +++
 tests/dbus/account-basics.cpp           |    2 +-
 4 files changed, 19 insertions(+), 18 deletions(-)

diff --git a/TelepathyQt4/Client/account-manager.cpp b/TelepathyQt4/Client/account-manager.cpp
index 25ec1a2..899e5ee 100644
--- a/TelepathyQt4/Client/account-manager.cpp
+++ b/TelepathyQt4/Client/account-manager.cpp
@@ -27,7 +27,6 @@
 
 #include "TelepathyQt4/debug-internal.h"
 
-#include <TelepathyQt4/Client/Account>
 #include <TelepathyQt4/Client/PendingAccount>
 #include <TelepathyQt4/Client/PendingReady>
 #include <TelepathyQt4/Constants>
@@ -83,7 +82,7 @@ struct AccountManager::Private
     QStringList interfaces;
     QSet<QString> validAccountPaths;
     QSet<QString> invalidAccountPaths;
-    QMap<QString, QSharedPointer<Account> > accounts;
+    QMap<QString, AccountPtr> accounts;
 };
 
 AccountManager::Private::Private(AccountManager *parent)
@@ -250,7 +249,7 @@ QStringList AccountManager::allAccountPaths() const
  * \return A list of Account objects
  * \sa invalidAccounts(), allAccounts(), accountsForPaths()
  */
-QList<QSharedPointer<Account> > AccountManager::validAccounts()
+QList<AccountPtr> AccountManager::validAccounts()
 {
     return accountsForPaths(validAccountPaths());
 }
@@ -267,7 +266,7 @@ QList<QSharedPointer<Account> > AccountManager::validAccounts()
  * \return A list of Account objects
  * \sa validAccounts(), allAccounts(), accountsForPaths()
  */
-QList<QSharedPointer<Account> > AccountManager::invalidAccounts()
+QList<AccountPtr> AccountManager::invalidAccounts()
 {
     return accountsForPaths(invalidAccountPaths());
 }
@@ -284,7 +283,7 @@ QList<QSharedPointer<Account> > AccountManager::invalidAccounts()
  * \return A list of Account objects
  * \sa validAccounts(), invalidAccounts(), accountsForPaths()
  */
-QList<QSharedPointer<Account> > AccountManager::allAccounts()
+QList<AccountPtr> AccountManager::allAccounts()
 {
     return accountsForPaths(allAccountPaths());
 }
@@ -302,7 +301,7 @@ QList<QSharedPointer<Account> > AccountManager::allAccounts()
  * \return A list of Account objects
  * \sa validAccounts(), invalidAccounts(), accountsForPaths()
  */
-QSharedPointer<Account> AccountManager::accountForPath(const QString &path)
+AccountPtr AccountManager::accountForPath(const QString &path)
 {
     if (mPriv->accounts.contains(path)) {
         return mPriv->accounts[path];
@@ -310,10 +309,10 @@ QSharedPointer<Account> AccountManager::accountForPath(const QString &path)
 
     if (!mPriv->validAccountPaths.contains(path) &&
         !mPriv->invalidAccountPaths.contains(path)) {
-        return QSharedPointer<Account>();
+        return AccountPtr();
     }
 
-    QSharedPointer<Account> account = QSharedPointer<Account>(
+    AccountPtr account = AccountPtr(
             new Account(this, path));
     mPriv->accounts[path] = account;
     return account;
@@ -332,9 +331,9 @@ QSharedPointer<Account> AccountManager::accountForPath(const QString &path)
  * \return A list of Account objects
  * \sa validAccounts(), invalidAccounts(), allAccounts()
  */
-QList<QSharedPointer<Account> > AccountManager::accountsForPaths(const QStringList &paths)
+QList<AccountPtr> AccountManager::accountsForPaths(const QStringList &paths)
 {
-    QList<QSharedPointer<Account> > result;
+    QList<AccountPtr> result;
     foreach (const QString &path, paths) {
         result << accountForPath(path);
     }
diff --git a/TelepathyQt4/Client/account-manager.h b/TelepathyQt4/Client/account-manager.h
index ce639a1..100745b 100644
--- a/TelepathyQt4/Client/account-manager.h
+++ b/TelepathyQt4/Client/account-manager.h
@@ -28,6 +28,7 @@
 
 #include <TelepathyQt4/_gen/cli-account-manager.h>
 
+#include <TelepathyQt4/Client/Account>
 #include <TelepathyQt4/Client/DBus>
 #include <TelepathyQt4/Client/DBusProxy>
 #include <TelepathyQt4/Client/OptionalInterfaceFactory>
@@ -36,7 +37,6 @@
 
 #include <QDBusObjectPath>
 #include <QSet>
-#include <QSharedPointer>
 #include <QString>
 #include <QVariantMap>
 
@@ -45,7 +45,6 @@ namespace Telepathy
 namespace Client
 {
 
-class Account;
 class AccountManager;
 class PendingAccount;
 class PendingReady;
@@ -76,12 +75,12 @@ public:
     QStringList invalidAccountPaths() const;
     QStringList allAccountPaths() const;
 
-    QList<QSharedPointer<Account> > validAccounts();
-    QList<QSharedPointer<Account> > invalidAccounts();
-    QList<QSharedPointer<Account> > allAccounts();
+    QList<AccountPtr> validAccounts();
+    QList<AccountPtr> invalidAccounts();
+    QList<AccountPtr> allAccounts();
 
-    QSharedPointer<Account> accountForPath(const QString &path);
-    QList<QSharedPointer<Account> > accountsForPaths(const QStringList &paths);
+    AccountPtr accountForPath(const QString &path);
+    QList<AccountPtr> accountsForPaths(const QStringList &paths);
 
     PendingAccount *createAccount(const QString &connectionManager,
             const QString &protocol, const QString &displayName,
diff --git a/TelepathyQt4/Client/account.h b/TelepathyQt4/Client/account.h
index 302cc44..b7231f6 100644
--- a/TelepathyQt4/Client/account.h
+++ b/TelepathyQt4/Client/account.h
@@ -35,6 +35,7 @@
 #include <TelepathyQt4/Client/ReadyObject>
 #include <TelepathyQt4/Constants>
 
+#include <QExplicitlySharedDataPointer>
 #include <QSet>
 #include <QSharedPointer>
 #include <QString>
@@ -190,6 +191,8 @@ private:
     Private *mPriv;
 };
 
+typedef QExplicitlySharedDataPointer<Account> AccountPtr;
+
 } // Telepathy::Client
 } // Telepathy
 
diff --git a/tests/dbus/account-basics.cpp b/tests/dbus/account-basics.cpp
index 30491dd..353e8c5 100644
--- a/tests/dbus/account-basics.cpp
+++ b/tests/dbus/account-basics.cpp
@@ -89,7 +89,7 @@ void TestAccountBasics::testBasics()
              QStringList() <<
                "/org/freedesktop/Telepathy/Account/foo/bar/Account0");
 
-    QSharedPointer<Account> acc = mAM->accountForPath(
+    AccountPtr acc = mAM->accountForPath(
             "/org/freedesktop/Telepathy/Account/foo/bar/Account0");
     QVERIFY(connect(acc->becomeReady(),
                     SIGNAL(finished(Telepathy::Client::PendingOperation *)),
-- 
1.5.6.5




More information about the telepathy-commits mailing list