Code Duplication    Length = 27-27 lines in 2 locations

src/Stream/Stream.php 1 location

@@ 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.

src/Stream/StreamWriter.php 1 location

@@ 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.