[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdepim/kresources/kolab/shared
From:       Volker Krause <vkrause () kde ! org>
Date:       2008-03-25 17:55:14
Message-ID: 1206467714.607849.28479.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 789931 by vkrause:

cleanup error handling


 M  +24 -59    kmailconnection.cpp  
 M  +27 -2     kmailconnection.h  


--- trunk/KDE/kdepim/kresources/kolab/shared/kmailconnection.cpp #789930:789931
@@ -37,11 +37,9 @@
 #include <kdebug.h>
 #include <kurl.h>
 #include <kdbusservicestarter.h>
-#include <kmail_groupwareinterface.h>
 #include <kmail/groupware_types.h>
 #include <klocale.h>
 #include <QDBusAbstractInterface>
-#include <QDBusError>
 #include <QMap>
 
 using namespace Kolab;
@@ -50,7 +48,6 @@
   : mResource( resource )
   , mKmailGroupwareInterface( 0 )
 {
-  // Make the connection to KMail ready
   QObject::connect(QDBusConnection::sessionBus().interface(),
                    SIGNAL(serviceOwnerChanged(QString,QString,QString)),
                    this, SLOT(dbusServiceOwnerChanged(QString,QString,QString)));
@@ -67,7 +64,6 @@
 
 bool KMailConnection::connectToKMail()
 {
-  kDebug()<<" bool KMailConnection::connectToKMail()";
   if ( !mKmailGroupwareInterface ) {
     QString error;
     QString dbusService;
@@ -161,13 +157,7 @@
 {
   if ( !connectToKMail() )
     return false;
-
-  QDBusReply<KMail::SubResource::List> r = \
                mKmailGroupwareInterface->subresourcesKolab( contentsType );
-  if ( r.isValid() )
-  {
-    lst = r;
-  }
-  return (mKmailGroupwareInterface->lastError().type()==QDBusError::NoError);
+  return checkReply( mKmailGroupwareInterface->subresourcesKolab( contentsType ), \
lst );  }
 
 bool KMailConnection::kmailIncidencesCount( int& count,
@@ -176,10 +166,7 @@
 {
   if ( !connectToKMail() )
     return false;
-
-  QDBusReply<int> val= mKmailGroupwareInterface->incidencesKolabCount( mimetype, \
                resource );
-  count = val;
-  return (mKmailGroupwareInterface->lastError().type()==QDBusError::NoError);
+  return checkReply( mKmailGroupwareInterface->incidencesKolabCount( mimetype, \
resource ), count );  }
 
 bool KMailConnection::kmailIncidences( KMail::SernumDataPair::List& lst,
@@ -190,11 +177,7 @@
 {
   if ( !connectToKMail() )
     return false;
-  QDBusReply< KMail::SernumDataPair::List > r = \
mKmailGroupwareInterface->incidencesKolab( mimetype, resource, startIndex, nbMessages \
                );
-  if (r.isValid()) {
-    lst = r.value();
-  }
-  return (mKmailGroupwareInterface->lastError().type()==QDBusError::NoError);
+  return checkReply( mKmailGroupwareInterface->incidencesKolab( mimetype, resource, \
startIndex, nbMessages ), lst );  }
 
 
@@ -205,11 +188,7 @@
 {
   if ( !connectToKMail() )
     return false;
-
-  QDBusReply<QString> val = mKmailGroupwareInterface->getAttachment( resource, \
                sernum, filename );
-  QString tmp = val;
-  url = KUrl( val );
-  return (mKmailGroupwareInterface->lastError().type()==QDBusError::NoError);
+  return checkReply( mKmailGroupwareInterface->getAttachment( resource, sernum, \
filename ), url );  }
 
 bool KMailConnection::kmailListAttachments(QStringList &list,
@@ -217,20 +196,15 @@
 {
   if ( !connectToKMail() )
     return false;
-
-  QDBusReply<QStringList> r = mKmailGroupwareInterface->listAttachments( resource, \
                sernum );
-  list = r;
-  return (mKmailGroupwareInterface->lastError().type()==QDBusError::NoError);
+  return checkReply( mKmailGroupwareInterface->listAttachments( resource, sernum ), \
list );  }
 
 bool KMailConnection::kmailDeleteIncidence( const QString& resource,
                                             quint32 sernum )
 {
-  QDBusReply<bool> deleteIncidence = mKmailGroupwareInterface->deleteIncidenceKolab( \
                resource, sernum );
-  bool b = deleteIncidence;
-  return connectToKMail()
-    && b
-    && (mKmailGroupwareInterface->lastError().type()==QDBusError::NoError);
+  if ( !connectToKMail() )
+    return false;
+  return checkReply( mKmailGroupwareInterface->deleteIncidenceKolab( resource, \
sernum ) );  }
 
 bool KMailConnection::kmailUpdate( const QString& resource,
@@ -243,9 +217,9 @@
                                    const QStringList& attachmentNames,
                                    const QStringList& deletedAttachments )
 {
-  bool ok = connectToKMail();
-
-  QDBusReply<quint32> reply = mKmailGroupwareInterface->update(
+  if ( !connectToKMail() )
+    return false;
+  return checkReply( mKmailGroupwareInterface->update(
       resource,
       sernum,
       subject,
@@ -254,52 +228,43 @@
       attachmentURLs,
       attachmentMimetypes,
       attachmentNames,
-      deletedAttachments );
-
-  if ( reply.isValid() )
-    sernum = reply;
-
-  return ok && (mKmailGroupwareInterface->lastError().type() == \
QDBusError::NoError); +      deletedAttachments ), sernum );
 }
 
 bool KMailConnection::kmailAddSubresource( const QString& resource,
                                            const QString& parent,
                                            const QString& contentsType )
 {
-  bool ok = connectToKMail();
-  QDBusReply<bool> reply = mKmailGroupwareInterface->addSubresource( resource, \
                parent, contentsType );
-  if ( reply.isValid() )
-    ok = reply;
-  return ok && (mKmailGroupwareInterface->lastError().type()==QDBusError::NoError);
+  if ( !connectToKMail() )
+    return false;
+  return checkReply( mKmailGroupwareInterface->addSubresource( resource, parent, \
contentsType ) );  }
 
 bool KMailConnection::kmailRemoveSubresource( const QString& resource )
 {
-  bool ok = connectToKMail();
-  QDBusReply<bool> reply = mKmailGroupwareInterface->removeSubresource( resource );
-  if ( reply.isValid() )
-    ok = reply;
-  return ok && (mKmailGroupwareInterface->lastError().type()==QDBusError::NoError);
+  if ( !connectToKMail() )
+    return false;
+  return checkReply( mKmailGroupwareInterface->removeSubresource( resource ) );
 }
 
 
 bool KMailConnection::kmailStorageFormat( KMail::StorageFormat& type,
                                           const QString& folder )
 {
-  bool ok = connectToKMail();
+  if ( !connectToKMail() )
+    return false;
   QDBusReply<int> reply = mKmailGroupwareInterface->storageFormat( folder );
   if ( reply.isValid() )
     type = static_cast<KMail::StorageFormat>( reply.value() );
-  return ok && (mKmailGroupwareInterface->lastError().type()==QDBusError::NoError);
+  return mKmailGroupwareInterface->lastError().type() == QDBusError::NoError;
 }
 
 
 bool KMailConnection::kmailTriggerSync( const QString &contentsType )
 {
-  bool ok = connectToKMail();
-  QDBusReply<bool> val =  mKmailGroupwareInterface->triggerSync( contentsType );
-  bool ret = val;
-  return ok && ret;
+  if ( !connectToKMail() )
+    return false;
+  return checkReply( mKmailGroupwareInterface->triggerSync( contentsType ) );
 }
 
 void KMailConnection::dbusServiceOwnerChanged(const QString & service, const \
                QString&, const QString&)
--- trunk/KDE/kdepim/kresources/kolab/shared/kmailconnection.h #789930:789931
@@ -34,12 +34,18 @@
 #ifndef KMAILCONNECTION_H
 #define KMAILCONNECTION_H
 
+#include <kmail/groupware_types.h>
+#include <kmail_groupwareinterface.h>
+
+#include <kdebug.h>
+
 #include <QObject>
-#include <kmail/groupware_types.h>
 #include <QMap>
+#include <QDBusError>
+#include <QDBusReply>
+
 class KUrl;
 class QString;
-class OrgKdeKmailGroupwareInterface;
 
 namespace Kolab {
 
@@ -107,6 +113,25 @@
                             const QString& contentsType );
   bool kmailRemoveSubresource( const QString& resource );
 
+  private:
+    template <typename T, typename V> inline bool checkReply( QDBusReply<T> reply, V \
&value ) const +    {
+      if ( reply.isValid() && mKmailGroupwareInterface->lastError().type() == \
QDBusError::NoError ) { +        value = reply.value();
+        return true;
+      }
+      kWarning(5650) << "D-Bus communication failed. Reply error is: " << \
reply.error() +          << "Last interface error was: " << \
mKmailGroupwareInterface->lastError(); +      return false;
+    }
+
+    inline bool checkReply( QDBusReply<bool> reply ) const
+    {
+      bool b;
+      bool ok = checkReply( reply, b );
+      return b && ok;
+    }
+
 private slots:
   void dbusServiceOwnerChanged(const QString & service, const QString & oldOwner, \
const QString & newOwner);  


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic