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