~ballot/wordpress/openstack-objectstorage-bis

« back to all changes in this revision

Viewing changes to vendor/guzzlehttp/streams/src/InflateStream.php

  • Committer: Jacek Nykis
  • Date: 2015-02-11 15:35:31 UTC
  • Revision ID: jacek.nykis@canonical.com-20150211153531-hmy6zi0ov2qfkl0b
Initial commit

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?php
 
2
namespace GuzzleHttp\Stream;
 
3
 
 
4
/**
 
5
 * Uses PHP's zlib.inflate filter to inflate deflate or gzipped content.
 
6
 *
 
7
 * This stream decorator skips the first 10 bytes of the given stream to remove
 
8
 * the gzip header, converts the provided stream to a PHP stream resource,
 
9
 * then appends the zlib.inflate filter. The stream is then converted back
 
10
 * to a Guzzle stream resource to be used as a Guzzle stream.
 
11
 *
 
12
 * @link http://tools.ietf.org/html/rfc1952
 
13
 * @link http://php.net/manual/en/filters.compression.php
 
14
 */
 
15
class InflateStream implements MetadataStreamInterface
 
16
{
 
17
    use StreamDecoratorTrait;
 
18
 
 
19
    public function __construct(StreamInterface $stream)
 
20
    {
 
21
        // Skip the first 10 bytes
 
22
        $stream = new LimitStream($stream, -1, 10);
 
23
        $resource = GuzzleStreamWrapper::getResource($stream);
 
24
        stream_filter_append($resource, 'zlib.inflate', STREAM_FILTER_READ);
 
25
        $this->stream = new Stream($resource);
 
26
    }
 
27
}