X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=maintenance%2FbackupPrefetch.inc;h=265800ec06cd97a3907f04d1c7a11487cf003390;hb=f54200ad2e5bc2fc64f55b71ee8a2cc88605b595;hp=6d41c18d83941f219cec114312ccdaa2c59dd719;hpb=ba8a835dcb3de335a04c81ebe8980a858d478cae;p=lhc%2Fweb%2Fwiklou.git diff --git a/maintenance/backupPrefetch.inc b/maintenance/backupPrefetch.inc index 6d41c18d83..265800ec06 100644 --- a/maintenance/backupPrefetch.inc +++ b/maintenance/backupPrefetch.inc @@ -40,21 +40,20 @@ * @ingroup Maintenance */ class BaseDump { - var $reader = null; - var $atEnd = false; - var $atPageEnd = false; - var $lastPage = 0; - var $lastRev = 0; - var $infiles = null; - - function BaseDump( $infile ) { + protected $reader = null; + protected $atEnd = false; + protected $atPageEnd = false; + protected $lastPage = 0; + protected $lastRev = 0; + protected $infiles = null; + + public function __construct( $infile ) { $this->infiles = explode( ';', $infile ); $this->reader = new XMLReader(); $infile = array_shift( $this->infiles ); if ( defined( 'LIBXML_PARSEHUGE' ) ) { $this->reader->open( $infile, null, LIBXML_PARSEHUGE ); - } - else { + } else { $this->reader->open( $infile ); } } @@ -76,18 +75,24 @@ class BaseDump { $this->nextPage(); } if ( $this->lastPage > $page || $this->atEnd ) { - $this->debug( "BaseDump::prefetch already past page $page looking for rev $rev [$this->lastPage, $this->lastRev]" ); + $this->debug( "BaseDump::prefetch already past page $page " + . "looking for rev $rev [$this->lastPage, $this->lastRev]" ); + return null; } while ( $this->lastRev < $rev && !$this->atEnd && !$this->atPageEnd ) { - $this->debug( "BaseDump::prefetch at page $this->lastPage, rev $this->lastRev, looking for $page, $rev" ); + $this->debug( "BaseDump::prefetch at page $this->lastPage, rev $this->lastRev, " + . "looking for $page, $rev" ); $this->nextRev(); } if ( $this->lastRev == $rev && !$this->atEnd ) { $this->debug( "BaseDump::prefetch hit on $page, $rev [$this->lastPage, $this->lastRev]" ); + return $this->nextText(); } else { - $this->debug( "BaseDump::prefetch already past rev $rev on page $page [$this->lastPage, $this->lastRev]" ); + $this->debug( "BaseDump::prefetch already past rev $rev on page $page " + . "[$this->lastPage, $this->lastRev]" ); + return null; } } @@ -137,6 +142,7 @@ class BaseDump { */ function nextText() { $this->skipTo( 'text' ); + return strval( $this->nodeContents() ); } @@ -151,16 +157,20 @@ class BaseDump { return false; } while ( $this->reader->read() ) { - if ( $this->reader->nodeType == XMLReader::ELEMENT && - $this->reader->name == $name ) { + if ( $this->reader->nodeType == XMLReader::ELEMENT + && $this->reader->name == $name + ) { return true; } - if ( $this->reader->nodeType == XMLReader::END_ELEMENT && - $this->reader->name == $parent ) { + if ( $this->reader->nodeType == XMLReader::END_ELEMENT + && $this->reader->name == $parent + ) { $this->debug( "BaseDump::skipTo found searching for <$name>" ); + return false; } } + return $this->close(); } @@ -182,15 +192,16 @@ class BaseDump { $buffer = ""; while ( $this->reader->read() ) { switch ( $this->reader->nodeType ) { - case XMLReader::TEXT: -// case XMLReader::WHITESPACE: - case XMLReader::SIGNIFICANT_WHITESPACE: - $buffer .= $this->reader->value; - break; - case XMLReader::END_ELEMENT: - return $buffer; + case XMLReader::TEXT: + // case XMLReader::WHITESPACE: + case XMLReader::SIGNIFICANT_WHITESPACE: + $buffer .= $this->reader->value; + break; + case XMLReader::END_ELEMENT: + return $buffer; } } + return $this->close(); } @@ -201,6 +212,7 @@ class BaseDump { function close() { $this->reader->close(); $this->atEnd = true; + return null; } }