Class: Ruflet::WireCodec::ByteReader
- Inherits:
-
Object
- Object
- Ruflet::WireCodec::ByteReader
- Defined in:
- lib/ruflet/server/wire_codec.rb
Instance Method Summary collapse
-
#initialize(bytes) ⇒ ByteReader
constructor
A new instance of ByteReader.
- #read_binary(size) ⇒ Object
- #read_exact(size) ⇒ Object
- #read_f32 ⇒ Object
- #read_f64 ⇒ Object
- #read_i16 ⇒ Object
- #read_i32 ⇒ Object
- #read_i64 ⇒ Object
- #read_i8 ⇒ Object
- #read_string(size) ⇒ Object
- #read_u16 ⇒ Object
- #read_u32 ⇒ Object
- #read_u64 ⇒ Object
- #read_u8 ⇒ Object
Constructor Details
#initialize(bytes) ⇒ ByteReader
Returns a new instance of ByteReader.
275 276 277 278 |
# File 'lib/ruflet/server/wire_codec.rb', line 275 def initialize(bytes) @data = bytes.to_s.b @offset = 0 end |
Instance Method Details
#read_binary(size) ⇒ Object
336 337 338 |
# File 'lib/ruflet/server/wire_codec.rb', line 336 def read_binary(size) read_exact(size) end |
#read_exact(size) ⇒ Object
288 289 290 291 292 293 294 |
# File 'lib/ruflet/server/wire_codec.rb', line 288 def read_exact(size) chunk = @data.byteslice(@offset, size) raise "Unexpected EOF" if chunk.nil? || chunk.bytesize != size @offset += size chunk end |
#read_f32 ⇒ Object
324 325 326 |
# File 'lib/ruflet/server/wire_codec.rb', line 324 def read_f32 read_exact(4).unpack1("g") end |
#read_f64 ⇒ Object
328 329 330 |
# File 'lib/ruflet/server/wire_codec.rb', line 328 def read_f64 read_exact(8).unpack1("G") end |
#read_i16 ⇒ Object
312 313 314 |
# File 'lib/ruflet/server/wire_codec.rb', line 312 def read_i16 read_exact(2).unpack1("s>") end |
#read_i32 ⇒ Object
316 317 318 |
# File 'lib/ruflet/server/wire_codec.rb', line 316 def read_i32 read_exact(4).unpack1("l>") end |
#read_i64 ⇒ Object
320 321 322 |
# File 'lib/ruflet/server/wire_codec.rb', line 320 def read_i64 read_exact(8).unpack1("q>") end |
#read_i8 ⇒ Object
308 309 310 |
# File 'lib/ruflet/server/wire_codec.rb', line 308 def read_i8 read_exact(1).unpack1("c") end |
#read_string(size) ⇒ Object
332 333 334 |
# File 'lib/ruflet/server/wire_codec.rb', line 332 def read_string(size) read_exact(size).force_encoding("UTF-8") end |
#read_u16 ⇒ Object
296 297 298 |
# File 'lib/ruflet/server/wire_codec.rb', line 296 def read_u16 read_exact(2).unpack1("n") end |
#read_u32 ⇒ Object
300 301 302 |
# File 'lib/ruflet/server/wire_codec.rb', line 300 def read_u32 read_exact(4).unpack1("N") end |
#read_u64 ⇒ Object
304 305 306 |
# File 'lib/ruflet/server/wire_codec.rb', line 304 def read_u64 read_exact(8).unpack1("Q>") end |
#read_u8 ⇒ Object
280 281 282 283 284 285 286 |
# File 'lib/ruflet/server/wire_codec.rb', line 280 def read_u8 value = @data.getbyte(@offset) raise "Unexpected EOF" if value.nil? @offset += 1 value end |