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