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

List:       kde-commits
Subject:    KDE/kdebase/runtime/nepomuk
From:       Sebastian Trueg <sebastian () trueg ! de>
Date:       2007-11-30 21:13:25
Message-ID: 1196457205.796173.8137.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 743403 by trueg:

* Fixed mtime handling in strigi backend (apparently Strigi encodes mtime as unsigned int instead of \
                xmls:dateTime)
* Improved performance by caching index transactions
* Start strigi indexing after starting strigi (IMHO this is something strigi should do, but then again I \
also think  Strigi should not be a DBus autostart service!)


 M  +2 -0      nepomukserver.cpp  
 M  +3 -1      repository.cpp  
 M  +24 -3     strigibackend/sopranoindexreader.cpp  


--- trunk/KDE/kdebase/runtime/nepomuk/nepomukserver.cpp #743402:743403
@@ -82,6 +82,8 @@
             false
 #endif
             );
+
+        m_strigi->startIndexing();
     }
 }
 
--- trunk/KDE/kdebase/runtime/nepomuk/repository.cpp #743402:743403
@@ -73,7 +73,9 @@
             rep->m_model = model;
             rep->m_index = index;
             rep->m_indexModel = new Soprano::Index::IndexFilterModel( index, model );
-//            rep->m_indexModel->setTransactionCacheSize( 50 );
+
+            // FIXME: find a good value here
+            rep->m_indexModel->setTransactionCacheSize( 500 );
             return rep;
         }
         else {
--- trunk/KDE/kdebase/runtime/nepomuk/strigibackend/sopranoindexreader.cpp #743402:743403
@@ -212,7 +212,13 @@
                     doc.mimetype = value;
                 }
                 else if (fieldName == FieldRegister::mtimeFieldName) {
-                    doc.mtime = s.object().literal().toDateTime().toTime_t();
+                    // FIXME: Sadly in Xesam sourceModified is not typed as DateTime but defaults to an \
int :( We try to be compatible +                    if ( s.object().literal().isDateTime() ) {
+                        doc.mtime = s.object().literal().toDateTime().toTime_t();
+                    }
+                    else {
+                        doc.mtime = s.object().literal().toUnsignedInt();
+                    }
                 }
                 else if (fieldName == FieldRegister::sizeFieldName) {
                     doc.size = s.object().literal().toInt64();
@@ -379,7 +385,14 @@
         Node pathNode = result.binding( "path" );
         Node mTimeNode = result.binding( "mtime" );
         qDebug() << "file in index: " << pathNode.toString() << "mtime:" << \
                mTimeNode.literal().toDateTime() << "(" << mTimeNode.literal().toDateTime().toTime_t() << \
                ")";
-        children[std::string( pathNode.toString().toUtf8().data() )] = \
mTimeNode.literal().toDateTime().toTime_t(); +
+        // FIXME: Sadly in Xesam sourceModified is not typed as DateTime but defaults to an int :( We \
try to be compatible +        if ( mTimeNode.literal().isDateTime() ) {
+            children[std::string( pathNode.toString().toUtf8().data() )] = \
mTimeNode.literal().toDateTime().toTime_t(); +        }
+        else {
+            children[std::string( pathNode.toString().toUtf8().data() )] = \
mTimeNode.literal().toUnsignedInt(); +        }
     }
 }
 
@@ -422,7 +435,15 @@
 
     time_t mtime = 0;
     if ( it.next() ) {
-        mtime = it.binding( "mtime" ).literal().toDateTime().toTime_t();
+        ::Soprano::LiteralValue val = it.binding( "mtime" ).literal();
+
+        // FIXME: Sadly in Xesam sourceModified is not typed as DateTime but defaults to an int :( We \
try to be compatible +        if ( val.isDateTime() ) {
+            mtime = val.toDateTime().toTime_t();
+        }
+        else {
+            mtime = val.toUnsignedInt();
+        }
     }
     return mtime;
 }


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

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