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:----OgL+IhHn7RK0OJs8oi/NRAzy5v0KBD7SocgiLflQp3cxwq+ffLqkvG+EuW3WV9Hv1t3IghUduY7aPIIqHATFxcdlDsE9806BAjlzfmAW3rhFLiI0dAarkB1GqedE56yebtStKgi5lGPY2V4uG0G0QZkJy2PWqIKrfVCaKYTEJJqyi4eQcnno4mYMM8qfPqC5dXD3l4a2e/p/uGqDLYHfMpump94+X8p7J5V28rqSJsSIuGRM3JkmhoOvcZlpkZibg+UDfM237H1UvmS9PU9yvSK7p5cU7mXPk7t/ULhvU/I3BYo2723azeRUd4I+LQzUYMATZzvQlvIkii7KXsXhPxSpppEtWCIcJlzxwwcrsUUEu7RaXwkFUYmacMgs4eHfX9RNjkfrIh5LrgfUi4SYODAc39mrj9fz5vhr+2kO9V/HGkaELuIjo2fW2eK4z+6HLaCfR9/hXm8eR0WLeUUpftCdR9tVi6MZBcL080BPDA0Dx1hdHL6NYDk3bNc5N6tvOhVJ+Qq6r4Cj9uxjQLp2v+/qj5PJOK28oAR9XGOh0jbxXc/PTzVcc1vJjzxDexi7VrtoZSfY3Dmc49ageNiXLqsBYYfK2KCTCNaxFlXCPRh/IH0JO3VNnUMwvZc0+wzwTYn13pYY8bqO7WS5dstgnQyH5GKnmO26/u/h7N/LqGE=----ATTACHMENT:----OTI2Mjg4MjkyOTI3NjE2MCAxNTQ4ODM5NjQzMTgwNDAyIDIyMDkzMjgxNTUwMzQwMjY=