Files
provider_imap/lib/Client/Transport/Socket/SocketResponseStream.php
Sebastian Krupinski 7f562d6aba feat: initial version
Signed-off-by: Sebastian Krupinski <root@LAPTOP-7DVOR6NC>
2026-02-20 16:41:19 -05:00

44 lines
849 B
PHP

<?php
declare(strict_types=1);
namespace Gricob\IMAP\Transport\Socket;
use Gricob\IMAP\Transport\ResponseStream;
final class SocketResponseStream implements ResponseStream
{
/**
* @param resource $stream
*/
public function __construct(private $stream)
{
}
public function read(int $bytes): string
{
if ($bytes <= 0) {
return '';
}
$remainingBytes = $bytes;
$data = '';
do {
$data .= fread($this->stream, $remainingBytes);
$remainingBytes = $bytes - strlen($data);
} while ($remainingBytes > 0);
return $data;
}
public function readLine(): string
{
$line = '';
while ("\n" !== ($char = fread($this->stream, 1))) {
$line .= $char;
}
return $line."\n";
}
}