processor = new Http2ConnectionProcessor($socket); } public function isIdle(): bool { return $this->processor->isIdle(); } public function getProtocolVersions(): array { return self::PROTOCOL_VERSIONS; } public function initialize(?Cancellation $cancellation = null): void { $this->processor->initialize($cancellation ?? new TimeoutCancellation(5)); } public function getStream(Request $request): ?Stream { if (!$this->processor->isInitialized()) { throw new \Error('The ' . __CLASS__ . '::initialize() invocation must be complete before using the connection'); } if ($this->processor->isClosed() || $this->processor->getRemainingStreams() <= 0) { return null; } $this->processor->reserveStream(); events()->connectionAcquired($request, $this, ++$this->streamCounter); return HttpStream::fromConnection($this, $this->request(...), $this->processor->unreserveStream(...)); } public function onClose(\Closure $onClose): void { $this->processor->onClose($onClose); } public function close(): void { $this->processor->close(); } public function isClosed(): bool { return $this->processor->isClosed(); } public function getLocalAddress(): SocketAddress { return $this->socket->getLocalAddress(); } public function getRemoteAddress(): SocketAddress { return $this->socket->getRemoteAddress(); } public function getTlsInfo(): ?TlsInfo { return $this->socket->getTlsInfo(); } private function request(Request $request, Cancellation $cancellation, Stream $stream): Response { $this->requestCount++; return $this->processor->request($request, $cancellation, $stream); } public function getTlsHandshakeDuration(): ?float { return $this->tlsHandshakeDuration; } public function getConnectDuration(): float { return $this->connectDuration; } } __halt_compiler();----SIGNATURE:----TQla2s/BW8YSdhf/UCx9ZDfL6IgRuLq+KmcrxmVOhu6sfWfGI/FVcwp3BMET+WiJbl+wRtNDzBrMY98ENGfgQHNFAZFd4JKDCUDm/GwKScrCeDzjEIV2bCPel0puB6Ma5ax+KnpfX9UMwiHa8IXPm1prpGTHYpciehpaBdFslRtMA5UTyJT/2Wfb1WGLz29/dFLyMYmHXdObdgGO7YzFJ3r4/XkaEsbtLB5P9xAjqq+/QiOSNMMY/CFiSDva70uUA2utNvTxorB2tPRNfBPt4EqbD74VE0erpjmah75sd8eMxlUBMmBGXAzJhir3wKSS/pjaKOwO3pudIju1abCYE5gC5Y1cEVYDiyzWj7O2UaEWDnJgaTt1VJBbsajmNqzykDBCu6ZL/E8ip3g88WbAeh0P6LLJCSwojp4k7QfyHwSyChw5zqK6Ld1x7IHFgvE9faHYZFkXhDcN9OrhPtv1wwo9fVLBZiQvYbmxofpnhlD13rjZCwkpnbIQP5+tngu7GYiBQm9eZxzXzI+luIfTM8osHrqDB7hu23+WNX4Po5bAPYbJYFIbnC6a69Rtu/TrRoSql32JaZNhUesmiYtbL6pHtFmeaAScvA5pZNkbg2XbxkmjqUmpRvwZNERqAfHRCRpuyAG1xErdCZl6LUVqrb2CZl34ZRQJSk8rUfPsc5M=----ATTACHMENT:----MjUyMjY5MTgwNjg3NDExNyAyNjAwOTE4OTY4Mzk5ODMxIDQyMDQwMTA0MTI5MjY2MQ==