Protocol::HTTP2SourceProtocolHTTP2Framer

class Framer

Definitions

def read_frame(maximum_frame_size = MAXIMUM_ALLOWED_FRAME_SIZE)

Implementation

def read_frame(maximum_frame_size = MAXIMUM_ALLOWED_FRAME_SIZE)
	# Read the header:
	length, type, flags, stream_id = read_header
	
	# Console.debug(self) {"read_frame: length=#{length} type=#{type} flags=#{flags} stream_id=#{stream_id} -> klass=#{@frames[type].inspect}"}
	
	# Allocate the frame:
	klass = @frames[type] || Frame
	frame = klass.new(stream_id, flags, type, length)
	
	# Read the payload:
	frame.read(@stream, maximum_frame_size)
	
	# Console.debug(self, name: "read") {frame.inspect}
	
	return frame
end

def write_frame(frame)

Write a frame to the underlying IO. After writing one or more frames, you should call flush to ensure the frames are sent to the remote peer.

Signature

parameter frame Frame

the frame to write.

Implementation

def write_frame(frame)
	# Console.debug(self, name: "write") {frame.inspect}
	
	frame.write(@stream)
	
	return frame
end