class Protocol::HTTP2::Client

Public Class Methods

new(framer) click to toggle source
Calls superclass method
# File lib/protocol/http2/client.rb, line 26
def initialize(framer)
        super(framer, 1)
end

Public Instance Methods

create_push_promise_stream() click to toggle source
# File lib/protocol/http2/client.rb, line 58
def create_push_promise_stream
        raise ProtocolError, "Cannot create push promises from client!"
end
local_stream_id?(id) click to toggle source
# File lib/protocol/http2/client.rb, line 30
def local_stream_id?(id)
        id.odd?
end
receive_push_promise(frame) click to toggle source
# File lib/protocol/http2/client.rb, line 62
def receive_push_promise(frame)
        if frame.stream_id == 0
                raise ProtocolError, "Cannot receive headers for stream 0!"
        end
        
        if stream = @streams[frame.stream_id]
                # This is almost certainly invalid:
                promised_stream, request_headers = stream.receive_push_promise(frame)
                
                if stream.closed?
                        @streams.delete(stream.id)
                end
                
                return promised_stream, request_headers
        end
end
remote_stream_id?(id) click to toggle source
# File lib/protocol/http2/client.rb, line 34
def remote_stream_id?(id)
        id.even?
end
send_connection_preface(settings = []) { || ... } click to toggle source
# File lib/protocol/http2/client.rb, line 42
def send_connection_preface(settings = [])
        if @state == :new
                @framer.write_connection_preface
                
                send_settings(settings)
                
                yield if block_given?
                
                read_frame do |frame|
                        raise ProtocolError, "First frame must be #{SettingsFrame}, but got #{frame.class}" unless frame.is_a? SettingsFrame
                end
        else
                raise ProtocolError, "Cannot send connection preface in state #{@state}"
        end
end
valid_remote_stream_id?(stream_id) click to toggle source
# File lib/protocol/http2/client.rb, line 38
def valid_remote_stream_id?(stream_id)
        stream_id.even?
end