30 private $mBuffer =
'';
42 self::$sourceRegistrations[$id] =
$source;
52 if ( !isset( self::$sourceRegistrations[$id] ) ) {
55 return self::$sourceRegistrations[$id]->isSeekable();
63 public static function seekSource(
string $id,
int $offset ) {
64 if ( !isset( self::$sourceRegistrations[$id] ) ) {
67 return self::$sourceRegistrations[$id]->seek( $offset );
79 if ( !isset(
$url[
'host'] ) ) {
84 if ( !isset( self::$sourceRegistrations[$id] ) ) {
88 $this->mSource = self::$sourceRegistrations[$id];
101 while ( !$leave && !$this->mSource->atEnd() &&
102 strlen( $this->mBuffer ) < $count
104 $read = $this->mSource->readChunk();
106 if ( !strlen( $read ) ) {
110 $this->mBuffer .= $read;
113 if ( strlen( $this->mBuffer ) ) {
114 $return = substr( $this->mBuffer, 0, $count );
115 $this->mBuffer = substr( $this->mBuffer, $count );
118 $this->mPosition += strlen( $return );
135 return $this->mPosition;
142 return $this->mSource->atEnd();
151 $result[
'dev'] = $result[0] = 0;
152 $result[
'ino'] = $result[1] = 0;
153 $result[
'mode'] = $result[2] = 0;
154 $result[
'nlink'] = $result[3] = 0;
155 $result[
'uid'] = $result[4] = 0;
156 $result[
'gid'] = $result[5] = 0;
157 $result[
'rdev'] = $result[6] = 0;
158 $result[
'size'] = $result[7] = 0;
159 $result[
'atime'] = $result[8] = 0;
160 $result[
'mtime'] = $result[9] = 0;
161 $result[
'ctime'] = $result[10] = 0;
162 $result[
'blksize'] = $result[11] = 0;
163 $result[
'blocks'] = $result[12] = 0;
170class_alias( UploadSourceAdapter::class,
'UploadSourceAdapter' );
wfRandomString( $length=32)
Get a random string containing a number of pseudo-random hex characters.