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