Class: Protocol::HTTP2::PendingSettings

Inherits:
Object
  • Object
show all
Defined in:
lib/protocol/http2/settings_frame.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(current = Settings.new) ⇒ PendingSettings

Returns a new instance of PendingSettings.



132
133
134
135
136
137
# File 'lib/protocol/http2/settings_frame.rb', line 132

def initialize(current = Settings.new)
	@current = current
	@pending = current.dup
	
	@queue = []
end

Instance Attribute Details

#currentObject (readonly)

Returns the value of attribute current.



139
140
141
# File 'lib/protocol/http2/settings_frame.rb', line 139

def current
  @current
end

#pendingObject (readonly)

Returns the value of attribute pending.



140
141
142
# File 'lib/protocol/http2/settings_frame.rb', line 140

def pending
  @pending
end

Instance Method Details

#acknowledgeObject



147
148
149
150
151
152
153
154
155
# File 'lib/protocol/http2/settings_frame.rb', line 147

def acknowledge
	if changes = @queue.shift
		@current.update(changes)
		
		return changes
	else
		raise ProtocolError, "Cannot acknowledge settings, no changes pending"
	end
end

#append(changes) ⇒ Object



142
143
144
145
# File 'lib/protocol/http2/settings_frame.rb', line 142

def append(changes)
	@queue << changes
	@pending.update(changes)
end

#enable_connect_protocolObject



181
182
183
# File 'lib/protocol/http2/settings_frame.rb', line 181

def enable_connect_protocol
	@current.enable_connect_protocol
end

#enable_pushObject



161
162
163
# File 'lib/protocol/http2/settings_frame.rb', line 161

def enable_push
	@current.enable_push
end

#header_table_sizeObject



157
158
159
# File 'lib/protocol/http2/settings_frame.rb', line 157

def header_table_size
	@current.header_table_size
end

#initial_window_sizeObject



169
170
171
# File 'lib/protocol/http2/settings_frame.rb', line 169

def initial_window_size
	@current.initial_window_size
end

#maximum_concurrent_streamsObject



165
166
167
# File 'lib/protocol/http2/settings_frame.rb', line 165

def maximum_concurrent_streams
	@current.maximum_concurrent_streams
end

#maximum_frame_sizeObject



173
174
175
# File 'lib/protocol/http2/settings_frame.rb', line 173

def maximum_frame_size
	@current.maximum_frame_size
end

#maximum_header_list_sizeObject



177
178
179
# File 'lib/protocol/http2/settings_frame.rb', line 177

def maximum_header_list_size
	@current.maximum_header_list_size
end