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

List:       kde-commits
Subject:    kdesupport/akonadi/server/src/handler
From:       Volker Krause <vkrause () kde ! org>
Date:       2009-02-28 22:46:24
Message-ID: 1235861184.913528.32135.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 933442 by vkrause:

Use the new item retrieval code here as well, but keep ignoring errors for now.
As we fall back to whatever we already have in the cache in this case,
this actually is the desired behaviour in many cases, but I guess we need
a command parameter to let the application specify if errors should be
forwarded or ignored.


 M  +12 -5     fetch.cpp  


--- trunk/kdesupport/akonadi/server/src/handler/fetch.cpp #933441:933442
@@ -27,7 +27,9 @@
 #include "storage/selectquerybuilder.h"
 #include "resourceinterface.h"
 #include "storage/itemqueryhelper.h"
+#include "storage/itemretrievalmanager.h"
 #include "storage/parthelper.h"
+#include "akdebug.h"
 
 #include <QtCore/QStringList>
 #include <QtCore/QUuid>
@@ -361,8 +363,6 @@
   if ( mCacheOnly || (payloadList.isEmpty() && !mFullPayload) )
     return;
 
-  DataStore *store = connection()->storageBackend();
-
   // TODO: I'm sure this can be done with a single query instead of manually
   QueryBuilder partQuery = buildPartQuery( payloadList, mFullPayload, false );
   if ( !partQuery.exec() )
@@ -398,9 +398,16 @@
       QStringList missingPayloadIds;
       foreach ( const QString &s, missingParts )
         missingPayloadIds << s.mid( 4 );
-      store->retrieveDataFromResource( pimItemId, mItemQuery.query().value( \
                itemQueryRidColumn ).toString().toUtf8(),
-                                        mItemQuery.query().value( \
                itemQueryMimeTypeColumn ).toString().toUtf8(),
-                                        mItemQuery.query().value( \
itemQueryResouceColumn ).toString(), missingPayloadIds ); +      // TODO: how should \
we handle retrieval errors here? so far they have been ignored, +      // which makes \
sense in some cases, do we need a command parameter for this? +      try {
+        ItemRetrievalManager::instance()->requestItemDelivery( pimItemId,
+          mItemQuery.query().value( itemQueryRidColumn ).toString().toUtf8(),
+          mItemQuery.query().value( itemQueryMimeTypeColumn ).toString().toUtf8(),
+          mItemQuery.query().value( itemQueryResouceColumn ).toString(), \
missingPayloadIds ); +      } catch ( const ItemRetrieverException &e ) {
+        akError() << e.type() << ": " << e.what();
+      }
     }
     mItemQuery.query().next();
   }


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

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