OSDN Git Service

use cache when we can't get dat file.
authorikemo <ikemo@56b19765-1e22-0410-a548-a0f45d66c51a>
Mon, 5 Jan 2004 11:08:19 +0000 (11:08 +0000)
committerikemo <ikemo@56b19765-1e22-0410-a548-a0f45d66c51a>
Mon, 5 Jan 2004 11:08:19 +0000 (11:08 +0000)
git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/kita/kita/trunk@786 56b19765-1e22-0410-a548-a0f45d66c51a

ChangeLog
kita/src/libkita/thread.cpp

index 3c6dc82..30785de 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2004-01-05  Hideki Ikemoto  <ikemo@users.sourceforge.jp>
+
+       * use cache when we can't get dat file.
+
 2004-01-04  Hideki Ikemoto  <ikemo@users.sourceforge.jp>
 
        * get difference data instead of entire data.
index be3d4bf..5165bf8 100644 (file)
@@ -21,6 +21,7 @@
 #include <kio/slaveconfig.h>
 #include <kio/jobclasses.h>
 #include <kio/scheduler.h>
+#include <kio/netaccess.h>
 
 #include <qwidget.h>
 #include <qapplication.h>
@@ -429,7 +430,10 @@ void ThreadAccess::writeCacheData( const KURL& url )
         ok = false;
 
     if ( ok ) {
-        if ( m_orgData && responseCode() == 206 ) {
+        if ( m_orgData && responseCode() == 304 ) {
+            // datÍî¤Á¤é¤·¤­¾ì¹ç
+            m_threadData = m_orgData;
+        } else if ( m_orgData && responseCode() == 206 ) {
             QCString orgData = QCString( m_orgData, strlen( m_orgData ) );
             m_threadData = orgData + m_threadData;
         }
@@ -452,6 +456,11 @@ QString ThreadAccess::get()
 {
     m_orgData = getCacheData( m_thread->datURL() );
 
+    // copy original cache file
+    QString cachePath = getCachePath( m_thread->datURL() );
+    QString backupPath = cachePath + ".kita_backup";
+    KIO::NetAccess::copy( cachePath, backupPath );
+
     if ( KURL( m_thread->datURL() ).protocol() != "k2ch" ) {
         KIO::SlaveConfig::self() ->setConfigData( "http",
                 KURL( m_thread->datURL() ).host(),
@@ -477,6 +486,7 @@ QString ThreadAccess::get()
     enter_loop();
 
     writeCacheData( m_thread->datURL() );
+    KIO::NetAccess::del( backupPath );
 
     QCp932Codec codec;
     return codec.toUnicode( m_threadData );
@@ -497,10 +507,16 @@ void ThreadAccess::enter_loop()
 
 void ThreadAccess::slotRedirection( KIO::Job *, const KURL & newURL )
 {
+    // datÍî¤Á¤·¤Æ¤ë¤È»×¤ï¤ì¤ë¤Î¤Ç¥­¥ã¥Ã¥·¥å¤ò¸µ¤ËÌ᤹
+    QString cachePath = getCachePath( m_thread->datURL() );
+    QString backupPath = cachePath + ".kita_backup";
+    KIO::NetAccess::copy( backupPath, cachePath );
+    KIO::NetAccess::del( backupPath );
+/*
     kdDebug() << "Redirected to newURL: " << newURL.url() << endl;
     Kita::Board::setName( datToBoard( newURL.url() ), m_thread->boardName() );
     m_thread = Kita::Thread::getByURL( newURL.url() );
-    emit redirection( newURL.url() );
+    emit redirection( newURL.url() );*/
 }
 
 void ThreadAccess::slotReceiveThreadData( KIO::Job*, const QByteArray& data )