diff options
Diffstat (limited to 'includes/filerepo/ForeignDBViaLBRepo.php')
-rw-r--r-- | includes/filerepo/ForeignDBViaLBRepo.php | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/includes/filerepo/ForeignDBViaLBRepo.php b/includes/filerepo/ForeignDBViaLBRepo.php new file mode 100644 index 00000000..13c9f434 --- /dev/null +++ b/includes/filerepo/ForeignDBViaLBRepo.php @@ -0,0 +1,39 @@ +<?php + +/** + * A foreign repository with a MediaWiki database accessible via the configured LBFactory + * @ingroup FileRepo + */ +class ForeignDBViaLBRepo extends LocalRepo { + var $wiki, $dbName, $tablePrefix; + var $fileFactory = array( 'ForeignDBFile', 'newFromTitle' ); + var $fileFromRowFactory = array( 'ForeignDBFile', 'newFromRow' ); + + function __construct( $info ) { + parent::__construct( $info ); + $this->wiki = $info['wiki']; + list( $this->dbName, $this->tablePrefix ) = wfSplitWikiID( $this->wiki ); + $this->hasSharedCache = $info['hasSharedCache']; + } + + function getMasterDB() { + return wfGetDB( DB_MASTER, array(), $this->wiki ); + } + + function getSlaveDB() { + return wfGetDB( DB_SLAVE, array(), $this->wiki ); + } + function hasSharedCache() { + return $this->hasSharedCache; + } + + function store( $srcPath, $dstZone, $dstRel, $flags = 0 ) { + throw new MWException( get_class($this) . ': write operations are not supported' ); + } + function publish( $srcPath, $dstRel, $archiveRel, $flags = 0 ) { + throw new MWException( get_class($this) . ': write operations are not supported' ); + } + function deleteBatch( $fileMap ) { + throw new MWException( get_class($this) . ': write operations are not supported' ); + } +} |