getCancellation(); * * $response = $httpClient->request("https://example.com/pipeline", $cancellation); * $responseBody = $response->getBody(); * * while (null !== $chunk = $response->read()) { * // consume $chunk * * if ($noLongerInterested) { * $deferredCancellation->cancel(); * break; * } * } * ``` * * @see Cancellation * @see CancelledException */ final class DeferredCancellation { use ForbidCloning; use ForbidSerialization; private readonly Internal\Cancellable $source; private readonly Cancellation $cancellation; public function __construct() { $this->source = new Internal\Cancellable; $this->cancellation = new Internal\WrappedCancellation($this->source); } public function __destruct() { $this->source->cancel(); } public function getCancellation(): Cancellation { return $this->cancellation; } public function isCancelled(): bool { return $this->source->isRequested(); } /** * @param \Throwable|null $previous Exception to be used as the previous exception to CancelledException. */ public function cancel(?\Throwable $previous = null): void { $this->source->cancel($previous); } } __halt_compiler();----SIGNATURE:----HtN7hfrB1My0aAFpQMp9xd3PhHxWi26w8VYujNGVl/LXPc40yLayWppKVCtz+sk7O1mq69mvHD9zJFKvtTZLsmf6CZRCJp1vZgukzBMGsTBfp2jE/OZtudeRvhWp3OiZkXVOoFsOHafiWmZAC6RoezvCltIBuXuRc5dfBKnyAGZEtbyu39WLdKKft0SePZfzWxCDpOhVpoo4h9cMrzF/1VQLirjhIajVBRQOBhweyA8PvuA6dHI8oPH3SYOt8BVScISX6d+3w5pK+OR9j3zmSyn2VN2ym+TBK4mV15ZSlgJic2treuExl6ksQ610NR7m64VgblvegS+e5FNwKhS5DVYTDJxhhvAxwx5z/8qfVWcawra9zwkUBo63INu/0zm5a7nEhmJxsCDO4X/zVVO4vTB6bnM23twHj1+YN2sER5KNMROh1PzlBppMsNC88yljxku/PwYjOnDiXHOS2NBlK9BA3TiDMZu5+QCbvDKQsOCp70mR+Wb+qsCS1p8dLFpcisYNEKCy4HNqwRx4V3xoROoyPWE4sQZPwW1IQpsJY7vTQhj2CrMlx5Q4kL2Z+9236FxuN1VHeT8DM2JdyfZdw+8XDU+IcLFWwMfYKieXrYVNYPDyLjKV7W8ST7eEesHs/7sxMLpzXiyEM/wjp2x7WA0cGd2A0PTfq2tNHq27KJc=----ATTACHMENT:----NDAwOTAzMTQ1MDc5OTg5OSA2NjA5NTQwNjEyMDYwMzU2IDkyNDUzNzE1MjA0MDIzODM=