class Avro::IPC::FramedReader
Attributes
reader[R]
Public Class Methods
new(reader)
click to toggle source
# File lib/avro/ipc.rb 502 def initialize(reader) 503 @reader = reader 504 end
Public Instance Methods
read_framed_message()
click to toggle source
# File lib/avro/ipc.rb 506 def read_framed_message 507 message = [] 508 loop do 509 buffer = ''.force_encoding('BINARY') 510 buffer_size = read_buffer_size 511 512 return message.join if buffer_size == 0 513 514 while buffer.bytesize < buffer_size 515 chunk = reader.read(buffer_size - buffer.bytesize) 516 chunk_error?(chunk) 517 buffer << chunk 518 end 519 message << buffer 520 end 521 end
Private Instance Methods
chunk_error?(chunk)
click to toggle source
# File lib/avro/ipc.rb 530 def chunk_error?(chunk) 531 raise ConnectionClosedError.new("Reader read 0 bytes") if chunk == '' 532 end
read_buffer_size()
click to toggle source
# File lib/avro/ipc.rb 524 def read_buffer_size 525 header = reader.read(BUFFER_HEADER_LENGTH) 526 chunk_error?(header) 527 header.unpack('N')[0] 528 end