Seditio Source
Root |
./othercms/xenForo 2.2.8/src/XF/Http/ResponseStream.php
<?php

namespace XF\Http;

use function
is_resource, strlen;

class
ResponseStream
{
    protected
$resource = null;
    protected
$length = null;

    protected
$contents = null;

    public function
__construct($resource, $length = null)
    {
        if (!
is_resource($resource))
        {
            throw new \
InvalidArgumentException("Must pass valid resource in");
        }

       
$this->resource = $resource;
       
$this->length = $length;
    }

    public function
__toString()
    {
        return
$this->getContents();
    }

    public function
output()
    {
        if (
$this->contents === null)
        {
           
fpassthru($this->resource);
        }
        else
        {
            echo
$this->contents;
        }
    }

    public function
getStream()
    {
        return
$this->resource;
    }

    public function
getLength()
    {
        return
$this->contents === null ? $this->length : strlen($this->contents);
    }

    public function
getContents()
    {
        if (
$this->contents === null)
        {
           
$this->contents = stream_get_contents($this->resource);
        }

        return
$this->contents;
    }
}