summaryrefslogtreecommitdiff
path: root/includes/HistoryBlob.php
diff options
context:
space:
mode:
authorPierre Schmitz <pierre@archlinux.de>2007-05-16 20:58:53 +0000
committerPierre Schmitz <pierre@archlinux.de>2007-05-16 20:58:53 +0000
commitcecb985bee3bdd252e1b8dc0bd500b37cd52be01 (patch)
tree17266aa237742640aabee7856f0202317a45d540 /includes/HistoryBlob.php
parent0bac06c301f2a83edb0236e4c2434da16848d549 (diff)
Aktualisierung auf MediaWiki 1.10.0
Plugins angepasst und verbessert kleine Korrekturen am Design
Diffstat (limited to 'includes/HistoryBlob.php')
-rw-r--r--includes/HistoryBlob.php98
1 files changed, 52 insertions, 46 deletions
diff --git a/includes/HistoryBlob.php b/includes/HistoryBlob.php
index a06b620d..9dfd6d61 100644
--- a/includes/HistoryBlob.php
+++ b/includes/HistoryBlob.php
@@ -1,82 +1,86 @@
<?php
/**
*
- * @package MediaWiki
*/
/**
* Pure virtual parent
- * @package MediaWiki
+ * @todo document (needs a one-sentence top-level class description, that answers the question: "what is a HistoryBlob?")
*/
-class HistoryBlob
+interface HistoryBlob
{
/**
* setMeta and getMeta currently aren't used for anything, I just thought
* they might be useful in the future.
* @param $meta String: a single string.
*/
- function setMeta( $meta ) {}
+ public function setMeta( $meta );
/**
* setMeta and getMeta currently aren't used for anything, I just thought
* they might be useful in the future.
* Gets the meta-value
*/
- function getMeta() {}
+ public function getMeta();
/**
* Adds an item of text, returns a stub object which points to the item.
* You must call setLocation() on the stub object before storing it to the
* database
*/
- function addItem() {}
+ public function addItem( $text );
/**
* Get item by hash
*/
- function getItem( $hash ) {}
+ public function getItem( $hash );
# Set the "default text"
# This concept is an odd property of the current DB schema, whereby each text item has a revision
# associated with it. The default text is the text of the associated revision. There may, however,
# be other revisions in the same object
- function setText() {}
+ public function setText( $text );
/**
* Get default text. This is called from Revision::getRevisionText()
*/
- function getText() {}
+ function getText();
}
/**
* The real object
- * @package MediaWiki
+ * @todo document (needs one-sentence top-level class description + function descriptions).
*/
-class ConcatenatedGzipHistoryBlob extends HistoryBlob
+class ConcatenatedGzipHistoryBlob implements HistoryBlob
{
- /* private */ var $mVersion = 0, $mCompressed = false, $mItems = array(), $mDefaultHash = '';
- /* private */ var $mFast = 0, $mSize = 0;
+ public $mVersion = 0, $mCompressed = false, $mItems = array(), $mDefaultHash = '';
+ public $mFast = 0, $mSize = 0;
- function ConcatenatedGzipHistoryBlob() {
+ /** Constructor */
+ public function ConcatenatedGzipHistoryBlob() {
if ( !function_exists( 'gzdeflate' ) ) {
throw new MWException( "Need zlib support to read or write this kind of history object (ConcatenatedGzipHistoryBlob)\n" );
}
}
+ #
+ # HistoryBlob implementation:
+ #
+
/** @todo document */
- function setMeta( $metaData ) {
+ public function setMeta( $metaData ) {
$this->uncompress();
$this->mItems['meta'] = $metaData;
}
/** @todo document */
- function getMeta() {
+ public function getMeta() {
$this->uncompress();
return $this->mItems['meta'];
}
/** @todo document */
- function addItem( $text ) {
+ public function addItem( $text ) {
$this->uncompress();
$hash = md5( $text );
$this->mItems[$hash] = $text;
@@ -87,7 +91,7 @@ class ConcatenatedGzipHistoryBlob extends HistoryBlob
}
/** @todo document */
- function getItem( $hash ) {
+ public function getItem( $hash ) {
$this->uncompress();
if ( array_key_exists( $hash, $this->mItems ) ) {
return $this->mItems[$hash];
@@ -97,13 +101,29 @@ class ConcatenatedGzipHistoryBlob extends HistoryBlob
}
/** @todo document */
- function removeItem( $hash ) {
+ public function setText( $text ) {
+ $this->uncompress();
+ $stub = $this->addItem( $text );
+ $this->mDefaultHash = $stub->mHash;
+ }
+
+ /** @todo document */
+ public function getText() {
+ $this->uncompress();
+ return $this->getItem( $this->mDefaultHash );
+ }
+
+ # HistoryBlob implemented.
+
+
+ /** @todo document */
+ public function removeItem( $hash ) {
$this->mSize -= strlen( $this->mItems[$hash] );
unset( $this->mItems[$hash] );
}
/** @todo document */
- function compress() {
+ public function compress() {
if ( !$this->mCompressed ) {
$this->mItems = gzdeflate( serialize( $this->mItems ) );
$this->mCompressed = true;
@@ -111,25 +131,13 @@ class ConcatenatedGzipHistoryBlob extends HistoryBlob
}
/** @todo document */
- function uncompress() {
+ public function uncompress() {
if ( $this->mCompressed ) {
$this->mItems = unserialize( gzinflate( $this->mItems ) );
$this->mCompressed = false;
}
}
- /** @todo document */
- function getText() {
- $this->uncompress();
- return $this->getItem( $this->mDefaultHash );
- }
-
- /** @todo document */
- function setText( $text ) {
- $this->uncompress();
- $stub = $this->addItem( $text );
- $this->mDefaultHash = $stub->mHash;
- }
/** @todo document */
function __sleep() {
@@ -145,7 +153,7 @@ class ConcatenatedGzipHistoryBlob extends HistoryBlob
/**
* Determines if this object is happy
*/
- function isHappy( $maxFactor, $factorThreshold ) {
+ public function isHappy( $maxFactor, $factorThreshold ) {
if ( count( $this->mItems ) == 0 ) {
return true;
}
@@ -179,7 +187,7 @@ $wgBlobCache = array();
/**
- * @package MediaWiki
+ * @todo document (needs one-sentence top-level class description + some function descriptions).
*/
class HistoryBlobStub {
var $mOldId, $mHash, $mRef;
@@ -197,28 +205,28 @@ class HistoryBlobStub {
$this->mOldId = $id;
}
- /**
- * Sets the location (old_id) of the referring object
- */
+ /**
+ * Sets the location (old_id) of the referring object
+ */
function setReferrer( $id ) {
$this->mRef = $id;
}
- /**
- * Gets the location of the referring object
- */
+ /**
+ * Gets the location of the referring object
+ */
function getReferrer() {
return $this->mRef;
}
/** @todo document */
function getText() {
- $fname = 'HistoryBlob::getText';
+ $fname = 'HistoryBlobStub::getText';
global $wgBlobCache;
if( isset( $wgBlobCache[$this->mOldId] ) ) {
$obj = $wgBlobCache[$this->mOldId];
} else {
- $dbr =& wfGetDB( DB_SLAVE );
+ $dbr = wfGetDB( DB_SLAVE );
$row = $dbr->selectRow( 'text', array( 'old_flags', 'old_text' ), array( 'old_id' => $this->mOldId ) );
if( !$row ) {
return false;
@@ -273,8 +281,6 @@ class HistoryBlobStub {
*
* Serialized HistoryBlobCurStub objects will be inserted into the text table
* on conversion if $wgFastSchemaUpgrades is set to true.
- *
- * @package MediaWiki
*/
class HistoryBlobCurStub {
var $mCurId;
@@ -294,7 +300,7 @@ class HistoryBlobCurStub {
/** @todo document */
function getText() {
- $dbr =& wfGetDB( DB_SLAVE );
+ $dbr = wfGetDB( DB_SLAVE );
$row = $dbr->selectRow( 'cur', array( 'cur_text' ), array( 'cur_id' => $this->mCurId ) );
if( !$row ) {
return false;