5
5
# Copyright, 2023, by Marco Concetto Rudilosso.
6
6
7
7
require_relative "framer"
8
- require_relative "dependency"
9
8
require_relative "flow_controlled"
10
9
11
10
require "protocol/hpack"
@@ -23,10 +22,6 @@ def initialize(framer, local_stream_id)
23
22
# Hash(Integer, Stream)
24
23
@streams = { }
25
24
26
- # Hash(Integer, Dependency)
27
- @dependency = Dependency . new ( self , 0 )
28
- @dependencies = { 0 => @dependency }
29
-
30
25
@framer = framer
31
26
32
27
# The next stream id to use:
@@ -95,7 +90,6 @@ def closed?
95
90
96
91
def delete ( id )
97
92
@streams . delete ( id )
98
- @dependencies [ id ] &.delete!
99
93
end
100
94
101
95
# Close the underlying framer and all streams.
@@ -402,22 +396,6 @@ def receive_headers(frame)
402
396
end
403
397
end
404
398
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
-
421
399
def receive_push_promise ( frame )
422
400
raise ProtocolError , "Unable to receive push promise!"
423
401
end
@@ -470,23 +448,17 @@ def receive_reset_stream(frame)
470
448
end
471
449
end
472
450
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.
475
453
def consume_window ( size = self . available_size )
476
454
# Return if there is no window to consume:
477
455
return unless size > 0
478
456
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
490
462
end
491
463
492
464
def receive_window_update ( frame )
0 commit comments