55# Copyright, 2023, by Marco Concetto Rudilosso.
66
77require_relative "framer"
8- require_relative "dependency"
98require_relative "flow_controlled"
109
1110require "protocol/hpack"
@@ -23,10 +22,6 @@ def initialize(framer, local_stream_id)
2322 # Hash(Integer, Stream)
2423 @streams = { }
2524
26- # Hash(Integer, Dependency)
27- @dependency = Dependency . new ( self , 0 )
28- @dependencies = { 0 => @dependency }
29-
3025 @framer = framer
3126
3227 # The next stream id to use:
@@ -95,7 +90,6 @@ def closed?
9590
9691 def delete ( id )
9792 @streams . delete ( id )
98- @dependencies [ id ] &.delete!
9993 end
10094
10195 # Close the underlying framer and all streams.
@@ -402,22 +396,6 @@ def receive_headers(frame)
402396 end
403397 end
404398
405- def send_priority ( stream_id , priority )
406- frame = PriorityFrame . new ( stream_id )
407- frame . pack ( priority )
408-
409- write_frame ( frame )
410- end
411-
412- # Sets the priority for an incoming stream.
413- def receive_priority ( frame )
414- if dependency = @dependencies [ frame . stream_id ]
415- dependency . receive_priority ( frame )
416- elsif idle_stream_id? ( frame . stream_id )
417- Dependency . create ( self , frame . stream_id , frame . unpack )
418- end
419- end
420-
421399 def receive_push_promise ( frame )
422400 raise ProtocolError , "Unable to receive push promise!"
423401 end
@@ -470,23 +448,17 @@ def receive_reset_stream(frame)
470448 end
471449 end
472450
473- # Traverse active streams in order of priority and allow them to consume the available flow-control window.
474- # @param amount [Integer] the amount of data to write. Defaults to the current window capacity.
451+ # Traverse active streams and allow them to consume the available flow-control window.
452+ # @parameter amount [Integer] the amount of data to write. Defaults to the current window capacity.
475453 def consume_window ( size = self . available_size )
476454 # Return if there is no window to consume:
477455 return unless size > 0
478456
479- # Console.info(self) do |buffer|
480- # @dependencies.each do |id, dependency|
481- # buffer.puts "- #{dependency}"
482- # end
483- #
484- # buffer.puts
485- #
486- # @dependency.print_hierarchy(buffer)
487- # end
488-
489- @dependency . consume_window ( size )
457+ @streams . each_value do |stream |
458+ if stream . active?
459+ stream . window_updated ( size )
460+ end
461+ end
490462 end
491463
492464 def receive_window_update ( frame )
0 commit comments