class Poseidon::Protocol::ResponseBuffer
Public Class Methods
new(response)
click to toggle source
# File lib/poseidon/protocol/response_buffer.rb, line 4 def initialize(response) @s = response @pos = 0 end
Public Instance Methods
bytes()
click to toggle source
# File lib/poseidon/protocol/response_buffer.rb, line 50 def bytes n = int32 if n == -1 return nil else read(n) end end
bytes_remaining()
click to toggle source
# File lib/poseidon/protocol/response_buffer.rb, line 59 def bytes_remaining @s.bytesize - @pos end
eof?()
click to toggle source
# File lib/poseidon/protocol/response_buffer.rb, line 63 def eof? @pos == @s.bytesize end
int16()
click to toggle source
# File lib/poseidon/protocol/response_buffer.rb, line 15 def int16 short = @s.byteslice(@pos, 2).unpack("s>").first @pos += 2 short end
int32()
click to toggle source
# File lib/poseidon/protocol/response_buffer.rb, line 21 def int32 int = @s.byteslice(@pos, 4).unpack("l>").first @pos += 4 int end
int64()
click to toggle source
# File lib/poseidon/protocol/response_buffer.rb, line 27 def int64 long = @s.byteslice(@pos, 8).unpack("q>").first @pos += 8 long end
int8()
click to toggle source
# File lib/poseidon/protocol/response_buffer.rb, line 9 def int8 byte = @s.byteslice(@pos, 1).unpack("C").first @pos += 1 byte end
peek(bytes)
click to toggle source
# File lib/poseidon/protocol/response_buffer.rb, line 46 def peek(bytes) @s.byteslice(@pos, bytes) end
read(bytes)
click to toggle source
# File lib/poseidon/protocol/response_buffer.rb, line 40 def read(bytes) data = @s.byteslice(@pos, bytes) @pos += bytes data end
string()
click to toggle source
# File lib/poseidon/protocol/response_buffer.rb, line 33 def string len = int16 string = @s.byteslice(@pos, len) @pos += len string end
to_s()
click to toggle source
# File lib/poseidon/protocol/response_buffer.rb, line 67 def to_s @s end