Method: Thrift::MemoryBufferTransport#read_into_buffer

Defined in:
lib/thrift/transport/memory_buffer_transport.rb

#read_into_buffer(buffer, size) ⇒ Object



84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
# File 'lib/thrift/transport/memory_buffer_transport.rb', line 84

def read_into_buffer(buffer, size)
  i = 0
  while i < size
    raise EOFError.new("Not enough bytes remain in buffer") if @index >= @buf.size

    # The read buffer has some data now, so copy bytes over to the output buffer.
    byte = Bytes.get_string_byte(@buf, @index)
    Bytes.set_string_byte(buffer, i, byte)
    @index += 1
    i += 1
  end
  if @index >= GARBAGE_BUFFER_SIZE
    @buf = @buf.slice(@index..-1)
    @index = 0
  end
  i
end