| @@ 233-259 (lines=27) @@ | ||
| 230 | * |
|
| 231 | * @internal |
|
| 232 | */ |
|
| 233 | public function handleWrite() |
|
| 234 | { |
|
| 235 | $text = $this->buffer->peek(); |
|
| 236 | $sent = fwrite($this->resource, $text, $this->bufferSize); |
|
| 237 | ||
| 238 | if ($sent === false) |
|
| 239 | { |
|
| 240 | $this->emit('error', [ $this, new WriteException('Error occurred while writing to the stream resource.') ]); |
|
| 241 | return; |
|
| 242 | } |
|
| 243 | ||
| 244 | $lenBefore = strlen($text); |
|
| 245 | $lenAfter = $lenBefore - $sent; |
|
| 246 | $this->buffer->remove($sent); |
|
| 247 | ||
| 248 | if ($lenAfter > 0 && $lenBefore >= $this->bufferSize && $lenAfter < $this->bufferSize) |
|
| 249 | { |
|
| 250 | $this->emit('drain', [ $this ]); |
|
| 251 | } |
|
| 252 | else if ($lenAfter === 0) |
|
| 253 | { |
|
| 254 | $this->loop->removeWriteStream($this->resource); |
|
| 255 | $this->writing = false; |
|
| 256 | $this->emit('drain', [ $this ]); |
|
| 257 | $this->emit('finish', [ $this ]); |
|
| 258 | } |
|
| 259 | } |
|
| 260 | ||
| 261 | /** |
|
| 262 | * Handle the incoming stream. |
|
| @@ 181-207 (lines=27) @@ | ||
| 178 | * |
|
| 179 | * @internal |
|
| 180 | */ |
|
| 181 | public function handleWrite() |
|
| 182 | { |
|
| 183 | $text = $this->buffer->peek(); |
|
| 184 | $sent = fwrite($this->resource, $text, $this->bufferSize); |
|
| 185 | ||
| 186 | if ($sent === false) |
|
| 187 | { |
|
| 188 | $this->emit('error', [ $this, new WriteException('Error occurred while writing to the stream resource.') ]); |
|
| 189 | return; |
|
| 190 | } |
|
| 191 | ||
| 192 | $lenBefore = strlen($text); |
|
| 193 | $lenAfter = $lenBefore - $sent; |
|
| 194 | $this->buffer->remove($sent); |
|
| 195 | ||
| 196 | if ($lenAfter > 0 && $lenBefore >= $this->bufferSize && $lenAfter < $this->bufferSize) |
|
| 197 | { |
|
| 198 | $this->emit('drain', [ $this ]); |
|
| 199 | } |
|
| 200 | else if ($lenAfter === 0) |
|
| 201 | { |
|
| 202 | $this->loop->removeWriteStream($this->resource); |
|
| 203 | $this->writing = false; |
|
| 204 | $this->emit('drain', [ $this ]); |
|
| 205 | $this->emit('finish', [ $this ]); |
|
| 206 | } |
|
| 207 | } |
|
| 208 | ||
| 209 | /** |
|
| 210 | * Handle close. |
|