Go to the documentation of this file.00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00015 final class CurlHttpResponse implements HttpResponse
00016 {
00017 private $headerParser = null;
00018 private $body = null;
00019 private $status = null;
00020 private $maxFileSize = null;
00021 private $currentFileSize = null;
00022
00023 public function __construct()
00024 {
00025 $this->headerParser = HeaderParser::create();
00026 $this->currentFileSize = 0;
00027 }
00028
00032 public static function create()
00033 {
00034 return new self;
00035 }
00036
00040 public function writeHeader($resource, $line)
00041 {
00042 $this->headerParser->doLine($line);
00043
00044 if (
00045 $this->maxFileSize !== null
00046 && $this->headerParser->hasHeader('Content-Length')
00047 && $this->headerParser->getHeader('Content-Length')
00048 > $this->maxFileSize
00049 )
00050 return -1;
00051 else
00052 return strlen($line);
00053 }
00054
00058 public function writeBody($resource, $body)
00059 {
00060 $this->body .= $body;
00061 $obtained = strlen($body);
00062
00063 if (
00064 $this->maxFileSize !== null
00065 && $this->currentFileSize + $obtained > $this->maxFileSize
00066 ) {
00067 return -1;
00068 } else {
00069 $this->currentFileSize += $obtained;
00070 return $obtained;
00071 }
00072 }
00073
00078 public function setMaxFileSize($maxFileSize)
00079 {
00080 $this->maxFileSize = $maxFileSize;
00081 return $this;
00082 }
00083
00087 public function setStatus(HttpStatus $status)
00088 {
00089 $this->status = $status;
00090 return $this;
00091 }
00092
00096 public function getStatus()
00097 {
00098 return $this->status;
00099 }
00100
00101 public function getReasonPhrase()
00102 {
00103 throw new UnsupportedMethodException();
00104 }
00105
00109 public function getHeaders()
00110 {
00111 return $this->headerParser->getHeaders();
00112 }
00113
00114 public function hasHeader($name)
00115 {
00116 return $this->headerParser->hasHeader($name);
00117 }
00118
00119 public function getHeader($name)
00120 {
00121 return $this->headerParser->getHeader($name);
00122 }
00123
00124 public function getBody()
00125 {
00126 return $this->body;
00127 }
00128 }
00129 ?>