Amp\Artax\Client::onCryptoCompletion PHP Method

onCryptoCompletion() private method

private onCryptoCompletion ( RequestCycle $cycle )
$cycle RequestCycle
    private function onCryptoCompletion(RequestCycle $cycle)
    {
        $parser = new Parser(Parser::MODE_RESPONSE);
        $parser->enqueueResponseMethodMatch($cycle->request->getMethod());
        $futureResponse = $cycle->futureResponse;
        $parser->setAllOptions([Parser::OP_DISCARD_BODY => $cycle->options[self::OP_DISCARD_BODY], Parser::OP_BODY_SWAP_SIZE => $cycle->options[self::OP_BODY_SWAP_SIZE], Parser::OP_MAX_HEADER_BYTES => $cycle->options[self::OP_MAX_HEADER_BYTES], Parser::OP_MAX_BODY_BYTES => $cycle->options[self::OP_MAX_BODY_BYTES], Parser::OP_RETURN_BEFORE_ENTITY => true, Parser::OP_BODY_DATA_CALLBACK => function ($data) use($futureResponse) {
            $futureResponse->update([Notify::RESPONSE_BODY_DATA, $data]);
        }]);
        $cycle->parser = $parser;
        $cycle->readWatcher = \Amp\onReadable($cycle->socket, function () use($cycle) {
            $this->onReadableSocket($cycle);
        });
        $timeout = $cycle->options[self::OP_MS_TRANSFER_TIMEOUT];
        if ($timeout > 0) {
            $cycle->transferTimeoutWatcher = \Amp\once(function () use($cycle, $timeout) {
                $this->fail($cycle, new TimeoutException(sprintf('Allowed transfer timeout exceeded: %d ms', $timeout)));
            }, $timeout);
        }
        $streamMeta = stream_get_meta_data($cycle->socket);
        $cycle->futureResponse->update([Notify::HANDSHAKE_COMPLETE, $streamMeta]);
        $this->writeRequest($cycle);
    }