MediaWiki REL1_32
UploadSourceAdapter.php
Go to the documentation of this file.
1<?php
33 public static $sourceRegistrations = [];
34
36 private $mSource;
37
39 private $mBuffer;
40
42 private $mPosition;
43
48 static function registerSource( ImportSource $source ) {
49 $id = wfRandomString();
50
51 self::$sourceRegistrations[$id] = $source;
52
53 return $id;
54 }
55
63 function stream_open( $path, $mode, $options, &$opened_path ) {
64 $url = parse_url( $path );
65 $id = $url['host'];
66
67 if ( !isset( self::$sourceRegistrations[$id] ) ) {
68 return false;
69 }
70
71 $this->mSource = self::$sourceRegistrations[$id];
72
73 return true;
74 }
75
80 function stream_read( $count ) {
81 $return = '';
82 $leave = false;
83
84 while ( !$leave && !$this->mSource->atEnd() &&
85 strlen( $this->mBuffer ) < $count ) {
86 $read = $this->mSource->readChunk();
87
88 if ( !strlen( $read ) ) {
89 $leave = true;
90 }
91
92 $this->mBuffer .= $read;
93 }
94
95 if ( strlen( $this->mBuffer ) ) {
96 $return = substr( $this->mBuffer, 0, $count );
97 $this->mBuffer = substr( $this->mBuffer, $count );
98 }
99
100 $this->mPosition += strlen( $return );
101
102 return $return;
103 }
104
109 function stream_write( $data ) {
110 return false;
111 }
112
116 function stream_tell() {
117 return $this->mPosition;
118 }
119
123 function stream_eof() {
124 return $this->mSource->atEnd();
125 }
126
130 function url_stat() {
131 $result = [];
132
133 $result['dev'] = $result[0] = 0;
134 $result['ino'] = $result[1] = 0;
135 $result['mode'] = $result[2] = 0;
136 $result['nlink'] = $result[3] = 0;
137 $result['uid'] = $result[4] = 0;
138 $result['gid'] = $result[5] = 0;
139 $result['rdev'] = $result[6] = 0;
140 $result['size'] = $result[7] = 0;
141 $result['atime'] = $result[8] = 0;
142 $result['mtime'] = $result[9] = 0;
143 $result['ctime'] = $result[10] = 0;
144 $result['blksize'] = $result[11] = 0;
145 $result['blocks'] = $result[12] = 0;
146
147 return $result;
148 }
149}
wfRandomString( $length=32)
Get a random string containing a number of pseudo-random hex characters.
This is a horrible hack used to keep source compatibility.
stream_open( $path, $mode, $options, &$opened_path)
static registerSource(ImportSource $source)
static array $sourceRegistrations
namespace being checked & $result
Definition hooks.txt:2385
null means default in associative array with keys and values unescaped Should be merged with default with a value of false meaning to suppress the attribute in associative array with keys and values unescaped & $options
Definition hooks.txt:2050
Source interface for XML import.
The wiki should then use memcached to cache various data To use multiple just add more items to the array To increase the weight of a make its entry a array("192.168.0.1:11211", 2))
$source