telepathy-qt: BaseConnectionSimplePresenceInterface: Reworked.

Alexandr Akulich kaffeine at kemper.freedesktop.org
Wed May 6 01:10:28 PDT 2015


Module: telepathy-qt
Branch: master
Commit: bf04e9f2d94caedc97daa982ab5389af2f1338e9
URL:    http://cgit.freedesktop.org/telepathy/telepathy-qt/commit/?id=bf04e9f2d94caedc97daa982ab5389af2f1338e9

Author: Alexandr Akulich <akulichalexander at gmail.com>
Date:   Mon Apr 13 10:46:56 2015 +0500

BaseConnectionSimplePresenceInterface: Reworked.

1) Fixed typo in the interface subclass name.
   (BaseConnectionSimplePresenceInterfaceSublclass ->
    BaseConnectionSimplePresenceInterfaceSubclass)
2) Fixed typo in maximumStatusMessageLength occurrence.
   (maxmimumStatusMessageLength ->
    maximumStatusMessageLength)
3) DBus GetPresences() method implementation refactored and exposed
   as complementary public C++ method, which can save CM from storing
   contact presences on its own.
4) maximumStatusMessageLength() type changed from int to uint, as it is
   in the specs.

---

 TelepathyQt/base-connection.cpp |   44 +++++++++++++++++++--------------------
 TelepathyQt/base-connection.h   |   20 +++++++++++-------
 2 files changed, 34 insertions(+), 30 deletions(-)

diff --git a/TelepathyQt/base-connection.cpp b/TelepathyQt/base-connection.cpp
index 9de1e5d..9455215 100644
--- a/TelepathyQt/base-connection.cpp
+++ b/TelepathyQt/base-connection.cpp
@@ -1027,12 +1027,12 @@ BaseConnectionSimplePresenceInterface::Adaptee::~Adaptee()
 
 struct TP_QT_NO_EXPORT BaseConnectionSimplePresenceInterface::Private {
     Private(BaseConnectionSimplePresenceInterface *parent)
-        : maxmimumStatusMessageLength(0),
+        : maximumStatusMessageLength(0),
           adaptee(new BaseConnectionSimplePresenceInterface::Adaptee(parent)) {
     }
     SetPresenceCallback setPresenceCB;
     SimpleStatusSpecMap statuses;
-    uint maxmimumStatusMessageLength;
+    uint maximumStatusMessageLength;
     /* The current presences */
     SimpleContactPresences presences;
     BaseConnectionSimplePresenceInterface::Adaptee *adaptee;
@@ -1099,6 +1099,17 @@ void BaseConnectionSimplePresenceInterface::setSetPresenceCallback(const SetPres
     mPriv->setPresenceCB = cb;
 }
 
+SimpleContactPresences BaseConnectionSimplePresenceInterface::getPresences(const UIntList &contacts)
+{
+    Tp::SimpleContactPresences presences;
+    foreach(uint handle, contacts) {
+        static const Tp::SimplePresence unknownPresence = { .type = ConnectionPresenceTypeUnknown, .status = QLatin1String("unknown") };
+        presences[handle] = mPriv->presences.value(handle, unknownPresence);
+    }
+
+    return presences;
+}
+
 Tp::SimpleStatusSpecMap BaseConnectionSimplePresenceInterface::statuses() const
 {
     return mPriv->statuses;
@@ -1109,14 +1120,14 @@ void BaseConnectionSimplePresenceInterface::setStatuses(const SimpleStatusSpecMa
     mPriv->statuses = statuses;
 }
 
-int BaseConnectionSimplePresenceInterface::maximumStatusMessageLength() const
+uint BaseConnectionSimplePresenceInterface::maximumStatusMessageLength() const
 {
-    return mPriv->maxmimumStatusMessageLength;
+    return mPriv->maximumStatusMessageLength;
 }
 
-void BaseConnectionSimplePresenceInterface::setMaxmimumStatusMessageLength(uint maxmimumStatusMessageLength)
+void BaseConnectionSimplePresenceInterface::setMaximumStatusMessageLength(uint maximumStatusMessageLength)
 {
-    mPriv->maxmimumStatusMessageLength = maxmimumStatusMessageLength;
+    mPriv->maximumStatusMessageLength = maximumStatusMessageLength;
 }
 
 Tp::SimpleStatusSpecMap BaseConnectionSimplePresenceInterface::Adaptee::statuses() const
@@ -1126,7 +1137,7 @@ Tp::SimpleStatusSpecMap BaseConnectionSimplePresenceInterface::Adaptee::statuses
 
 int BaseConnectionSimplePresenceInterface::Adaptee::maximumStatusMessageLength() const
 {
-    return mInterface->mPriv->maxmimumStatusMessageLength;
+    return mInterface->mPriv->maximumStatusMessageLength;
 }
 
 void BaseConnectionSimplePresenceInterface::Adaptee::setPresence(const QString &status, const QString &statusMessage_,
@@ -1145,10 +1156,10 @@ void BaseConnectionSimplePresenceInterface::Adaptee::setPresence(const QString &
     }
 
     QString statusMessage = statusMessage_;
-    if ((uint)statusMessage.length() > mInterface->mPriv->maxmimumStatusMessageLength) {
+    if ((uint)statusMessage.length() > mInterface->mPriv->maximumStatusMessageLength) {
         debug() << "BaseConnectionSimplePresenceInterface::Adaptee::setPresence: "
-                << "truncating status to " << mInterface->mPriv->maxmimumStatusMessageLength;
-        statusMessage = statusMessage.left(mInterface->mPriv->maxmimumStatusMessageLength);
+                << "truncating status to " << mInterface->mPriv->maximumStatusMessageLength;
+        statusMessage = statusMessage.left(mInterface->mPriv->maximumStatusMessageLength);
     }
 
     DBusError error;
@@ -1176,18 +1187,7 @@ void BaseConnectionSimplePresenceInterface::Adaptee::setPresence(const QString &
 void BaseConnectionSimplePresenceInterface::Adaptee::getPresences(const Tp::UIntList &contacts,
         const Tp::Service::ConnectionInterfaceSimplePresenceAdaptor::GetPresencesContextPtr &context)
 {
-    Tp::SimpleContactPresences presences;
-    foreach(uint handle, contacts) {
-        SimpleContactPresences::iterator i = mInterface->mPriv->presences.find(handle);
-        if (i == mInterface->mPriv->presences.end()) {
-            Tp::SimplePresence presence;
-            presence.type = ConnectionPresenceTypeUnknown;
-            presence.status = QLatin1String("unknown");
-            presences[handle] = presence;
-        } else
-            presences[handle] = *i;
-    }
-    context->setFinished(presences);
+    context->setFinished(mInterface->getPresences(contacts));
 }
 
 // Conn.I.ContactList
diff --git a/TelepathyQt/base-connection.h b/TelepathyQt/base-connection.h
index 67a756c..b3958c4 100644
--- a/TelepathyQt/base-connection.h
+++ b/TelepathyQt/base-connection.h
@@ -234,13 +234,15 @@ class TP_QT_EXPORT BaseConnectionSimplePresenceInterface : public AbstractConnec
     Q_DISABLE_COPY(BaseConnectionSimplePresenceInterface)
 
 public:
-    static BaseConnectionSimplePresenceInterfacePtr create() {
+    static BaseConnectionSimplePresenceInterfacePtr create()
+    {
         return BaseConnectionSimplePresenceInterfacePtr(new BaseConnectionSimplePresenceInterface());
     }
-    template<typename BaseConnectionSimplePresenceInterfaceSublclass>
-    static SharedPtr<BaseConnectionSimplePresenceInterfaceSublclass> create() {
-        return SharedPtr<BaseConnectionSimplePresenceInterfaceSublclass>(
-                   new BaseConnectionSimplePresenceInterfaceSublclass());
+    template<typename BaseConnectionSimplePresenceInterfaceSubclass>
+    static SharedPtr<BaseConnectionSimplePresenceInterfaceSubclass> create()
+    {
+        return SharedPtr<BaseConnectionSimplePresenceInterfaceSubclass>(
+                new BaseConnectionSimplePresenceInterfaceSubclass());
     }
 
     virtual ~BaseConnectionSimplePresenceInterface();
@@ -250,14 +252,16 @@ public:
     Tp::SimpleStatusSpecMap statuses() const;
     void setStatuses(const Tp::SimpleStatusSpecMap &statuses);
 
-    int maximumStatusMessageLength() const;
-    void setMaxmimumStatusMessageLength(uint maxmimumStatusMessageLength);
+    uint maximumStatusMessageLength() const;
+    void setMaximumStatusMessageLength(uint maximumStatusMessageLength);
 
-    typedef Callback3<uint, const QString&, const QString&, DBusError*> SetPresenceCallback;
+    typedef Callback3<uint, const QString &, const QString &, DBusError*> SetPresenceCallback;
     void setSetPresenceCallback(const SetPresenceCallback &cb);
 
     void setPresences(const Tp::SimpleContactPresences &presences);
 
+    Tp::SimpleContactPresences getPresences(const Tp::UIntList &contacts);
+
 protected:
     BaseConnectionSimplePresenceInterface();
 



More information about the telepathy-commits mailing list