Sha256: 80e4e358e5a0f377846ed461de8d1e60c9421b97733a904f53f9121b890dee8b
Contents?: true
Size: 1.44 KB
Versions: 7
Compression:
Stored size: 1.44 KB
Contents
# frozen_string_literal: true # Released under the MIT License. # Copyright, 2018-2024, by Samuel Williams. require_relative "connection" require_relative "response" require "traces/provider" require "protocol/http2/client" module Async module HTTP module Protocol module HTTP2 class Client < ::Protocol::HTTP2::Client include Connection def initialize(stream) @stream = stream framer = ::Protocol::HTTP2::Framer.new(@stream) super(framer) end def create_response Response::Stream.create(self, self.next_stream_id).response end # Used by the client to send requests to the remote server. def call(request) raise ::Protocol::HTTP2::Error, "Connection closed!" if self.closed? @count += 1 response = create_response write_request(response, request) read_response(response) return response end def write_request(response, request) response.send_request(request) end def read_response(response) response.wait end Traces::Provider(self) do def write_request(...) Traces.trace("async.http.protocol.http2.client.write_request") do super end end def read_response(...) Traces.trace("async.http.protocol.http2.client.read_response") do super end end end end end end end end
Version data entries
7 entries across 7 versions & 1 rubygems