Class: Protocol::HTTP2::Settings
- Inherits:
-
Object
- Object
- Protocol::HTTP2::Settings
- Defined in:
- lib/protocol/http2/settings_frame.rb
Constant Summary collapse
- HEADER_TABLE_SIZE =
0x1
- ENABLE_PUSH =
0x2
- MAXIMUM_CONCURRENT_STREAMS =
0x3
- INITIAL_WINDOW_SIZE =
0x4
- MAXIMUM_FRAME_SIZE =
0x5
- MAXIMUM_HEADER_LIST_SIZE =
0x6
- ENABLE_CONNECT_PROTOCOL =
0x8
- NO_RFC7540_PRIORITIES =
0x9
- ASSIGN =
[ nil, :header_table_size=, :enable_push=, :maximum_concurrent_streams=, :initial_window_size=, :maximum_frame_size=, :maximum_header_list_size=, nil, :enable_connect_protocol=, :no_rfc7540_priorities=, ]
Instance Attribute Summary collapse
-
#enable_connect_protocol ⇒ Object
Returns the value of attribute enable_connect_protocol.
-
#enable_push ⇒ Object
This setting can be used to disable server push.
-
#header_table_size ⇒ Object
Allows the sender to inform the remote endpoint of the maximum size of the header compression table used to decode header blocks, in octets.
-
#initial_window_size ⇒ Object
Indicates the sender’s initial window size (in octets) for stream-level flow control.
-
#maximum_concurrent_streams ⇒ Object
Indicates the maximum number of concurrent streams that the sender will allow.
-
#maximum_frame_size ⇒ Object
Indicates the size of the largest frame payload that the sender is willing to receive, in octets.
-
#maximum_header_list_size ⇒ Object
This advisory setting informs a peer of the maximum size of header list that the sender is prepared to accept, in octets.
-
#no_rfc7540_priorities ⇒ Object
Returns the value of attribute no_rfc7540_priorities.
Instance Method Summary collapse
- #enable_connect_protocol? ⇒ Boolean
- #enable_push? ⇒ Boolean
-
#initialize ⇒ Settings
constructor
A new instance of Settings.
- #no_rfc7540_priorities? ⇒ Boolean
- #update(changes) ⇒ Object
Constructor Details
#initialize ⇒ Settings
Returns a new instance of Settings.
33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/protocol/http2/settings_frame.rb', line 33 def initialize # These limits are taken from the RFC: # https://tools.ietf.org/html/rfc7540#section-6.5.2 @header_table_size = 4096 @enable_push = 1 @maximum_concurrent_streams = 0xFFFFFFFF @initial_window_size = 0xFFFF # 2**16 - 1 @maximum_frame_size = 0x4000 # 2**14 @maximum_header_list_size = 0xFFFFFFFF @enable_connect_protocol = 0 @no_rfc7540_priorities = 0 end |
Instance Attribute Details
#enable_connect_protocol ⇒ Object
Returns the value of attribute enable_connect_protocol.
94 95 96 |
# File 'lib/protocol/http2/settings_frame.rb', line 94 def enable_connect_protocol @enable_connect_protocol end |
#enable_push ⇒ Object
This setting can be used to disable server push. An endpoint MUST NOT send a PUSH_PROMISE frame if it receives this parameter set to a value of 0.
50 51 52 |
# File 'lib/protocol/http2/settings_frame.rb', line 50 def enable_push @enable_push end |
#header_table_size ⇒ Object
Allows the sender to inform the remote endpoint of the maximum size of the header compression table used to decode header blocks, in octets.
47 48 49 |
# File 'lib/protocol/http2/settings_frame.rb', line 47 def header_table_size @header_table_size end |
#initial_window_size ⇒ Object
Indicates the sender’s initial window size (in octets) for stream-level flow control.
68 69 70 |
# File 'lib/protocol/http2/settings_frame.rb', line 68 def initial_window_size @initial_window_size end |
#maximum_concurrent_streams ⇒ Object
Indicates the maximum number of concurrent streams that the sender will allow.
65 66 67 |
# File 'lib/protocol/http2/settings_frame.rb', line 65 def maximum_concurrent_streams @maximum_concurrent_streams end |
#maximum_frame_size ⇒ Object
Indicates the size of the largest frame payload that the sender is willing to receive, in octets.
79 80 81 |
# File 'lib/protocol/http2/settings_frame.rb', line 79 def maximum_frame_size @maximum_frame_size end |
#maximum_header_list_size ⇒ Object
This advisory setting informs a peer of the maximum size of header list that the sender is prepared to accept, in octets.
92 93 94 |
# File 'lib/protocol/http2/settings_frame.rb', line 92 def maximum_header_list_size @maximum_header_list_size end |
#no_rfc7540_priorities ⇒ Object
Returns the value of attribute no_rfc7540_priorities.
108 109 110 |
# File 'lib/protocol/http2/settings_frame.rb', line 108 def no_rfc7540_priorities @no_rfc7540_priorities end |
Instance Method Details
#enable_connect_protocol? ⇒ Boolean
104 105 106 |
# File 'lib/protocol/http2/settings_frame.rb', line 104 def enable_connect_protocol? @enable_connect_protocol == 1 end |
#enable_push? ⇒ Boolean
60 61 62 |
# File 'lib/protocol/http2/settings_frame.rb', line 60 def enable_push? @enable_push == 1 end |
#no_rfc7540_priorities? ⇒ Boolean
118 119 120 |
# File 'lib/protocol/http2/settings_frame.rb', line 118 def no_rfc7540_priorities? @no_rfc7540_priorities == 1 end |
#update(changes) ⇒ Object
122 123 124 125 126 127 128 |
# File 'lib/protocol/http2/settings_frame.rb', line 122 def update(changes) changes.each do |key, value| if name = ASSIGN[key] self.send(name, value) end end end |