Class: Requests::HPACK::Decoder
- Inherits:
-
Object
- Object
- Requests::HPACK::Decoder
- Defined in:
- lib/requests/hpack.rb
Instance Method Summary collapse
- #decode(bytes) ⇒ Object
-
#initialize(max_size: 4096) ⇒ Decoder
constructor
A new instance of Decoder.
Constructor Details
#initialize(max_size: 4096) ⇒ Decoder
Returns a new instance of Decoder.
179 180 181 182 183 |
# File 'lib/requests/hpack.rb', line 179 def initialize(max_size: 4096) @dynamic = [] @max_size = max_size @size = 0 end |
Instance Method Details
#decode(bytes) ⇒ Object
184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 |
# File 'lib/requests/hpack.rb', line 184 def decode(bytes) pos = 0 out = [] while pos < bytes.bytesize byte = bytes.getbyte(pos) if byte & 0x80 != 0 idx, pos = Integer.decode(bytes, pos, 7) out << lookup(idx) elsif byte & 0x40 != 0 name, value, pos = read_literal(bytes, pos, 6) add_dynamic(name, value) out << [name, value] elsif byte & 0x20 != 0 size, pos = Integer.decode(bytes, pos, 5) @max_size = size evict else name, value, pos = read_literal(bytes, pos, 4) out << [name, value] end end out end |