| Class | Thrift::MemoryBufferTransport |
| In: |
ruby/lib/thrift/transport/memory_buffer_transport.rb
|
| Parent: | BaseTransport |
| GARBAGE_BUFFER_SIZE | = | 4*(2**10) |
# File ruby/lib/thrift/transport/memory_buffer_transport.rb, line 55
55: def available
56: @buf.length - @index
57: end
# File ruby/lib/thrift/transport/memory_buffer_transport.rb, line 80
80: def inspect_buffer
81: out = []
82: for idx in 0...(@buf.size)
83: # if idx != 0
84: # out << " "
85: # end
86:
87: if idx == @index
88: out << ">"
89: end
90:
91: out << @buf[idx].ord.to_s(16)
92: end
93: out.join(" ")
94: end
# File ruby/lib/thrift/transport/memory_buffer_transport.rb, line 35
35: def open?
36: return true
37: end
# File ruby/lib/thrift/transport/memory_buffer_transport.rb, line 45
45: def peek
46: @index < @buf.size
47: end
# File ruby/lib/thrift/transport/memory_buffer_transport.rb, line 59
59: def read(len)
60: data = @buf.slice(@index, len)
61: @index += len
62: @index = @buf.size if @index > @buf.size
63: if @index >= GARBAGE_BUFFER_SIZE
64: @buf = @buf.slice(@index..-1)
65: @index = 0
66: end
67: if data.size < len
68: raise EOFError, "Not enough bytes remain in buffer"
69: end
70: data
71: end
this method does not use the passed object directly but copies it
# File ruby/lib/thrift/transport/memory_buffer_transport.rb, line 50
50: def reset_buffer(new_buf = '')
51: @buf.replace new_buf
52: @index = 0
53: end