Class: Ruflet::Rails::Protocol::WireCodec::ByteReader
- Inherits:
-
Object
- Object
- Ruflet::Rails::Protocol::WireCodec::ByteReader
- Defined in:
- lib/ruflet/rails/protocol/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.
232 233 234 235 |
# File 'lib/ruflet/rails/protocol/wire_codec.rb', line 232 def initialize(bytes) @data = bytes.to_s.b @offset = 0 end |
Instance Method Details
#read_binary(size) ⇒ Object
263 |
# File 'lib/ruflet/rails/protocol/wire_codec.rb', line 263 def read_binary(size) = read_exact(size) |
#read_exact(size) ⇒ Object
245 246 247 248 249 250 251 |
# File 'lib/ruflet/rails/protocol/wire_codec.rb', line 245 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
260 |
# File 'lib/ruflet/rails/protocol/wire_codec.rb', line 260 def read_f32 = read_exact(4).unpack1("g") |
#read_f64 ⇒ Object
261 |
# File 'lib/ruflet/rails/protocol/wire_codec.rb', line 261 def read_f64 = read_exact(8).unpack1("G") |
#read_i16 ⇒ Object
257 |
# File 'lib/ruflet/rails/protocol/wire_codec.rb', line 257 def read_i16 = read_exact(2).unpack1("s>") |
#read_i32 ⇒ Object
258 |
# File 'lib/ruflet/rails/protocol/wire_codec.rb', line 258 def read_i32 = read_exact(4).unpack1("l>") |
#read_i64 ⇒ Object
259 |
# File 'lib/ruflet/rails/protocol/wire_codec.rb', line 259 def read_i64 = read_exact(8).unpack1("q>") |
#read_i8 ⇒ Object
256 |
# File 'lib/ruflet/rails/protocol/wire_codec.rb', line 256 def read_i8 = read_exact(1).unpack1("c") |
#read_string(size) ⇒ Object
262 |
# File 'lib/ruflet/rails/protocol/wire_codec.rb', line 262 def read_string(size) = read_exact(size).force_encoding("UTF-8") |
#read_u16 ⇒ Object
253 |
# File 'lib/ruflet/rails/protocol/wire_codec.rb', line 253 def read_u16 = read_exact(2).unpack1("n") |
#read_u32 ⇒ Object
254 |
# File 'lib/ruflet/rails/protocol/wire_codec.rb', line 254 def read_u32 = read_exact(4).unpack1("N") |
#read_u64 ⇒ Object
255 |
# File 'lib/ruflet/rails/protocol/wire_codec.rb', line 255 def read_u64 = read_exact(8).unpack1("Q>") |
#read_u8 ⇒ Object
237 238 239 240 241 242 243 |
# File 'lib/ruflet/rails/protocol/wire_codec.rb', line 237 def read_u8 value = @data.getbyte(@offset) raise "Unexpected EOF" if value.nil? @offset += 1 value end |