class ChunkWriterIO
Constants
- MAX_CHUNK_SIZE
Writer for chunked data.
Public Class Methods
new()
click to toggle source
Calls superclass method
# File lib/neo4j/core/cypher_session/adaptors/bolt/chunk_writer_io.rb 8 def initialize 9 @output_buffer = [] 10 @output_size = 0 11 super 12 end
Public Instance Methods
buffer_result(zero_chunk = false)
click to toggle source
# File lib/neo4j/core/cypher_session/adaptors/bolt/chunk_writer_io.rb 55 def buffer_result(zero_chunk = false) 56 result = '' 57 58 if !@output_buffer.empty? 59 result << [@output_size].pack('s>*') 60 result.concat(@output_buffer.join) 61 end 62 63 result << "\x00\x00" if zero_chunk 64 65 result 66 end
clear_buffer!()
click to toggle source
# File lib/neo4j/core/cypher_session/adaptors/bolt/chunk_writer_io.rb 68 def clear_buffer! 69 @output_buffer.clear 70 @output_size = 0 71 end
close(zero_chunk = false)
click to toggle source
Close the stream.
Calls superclass method
# File lib/neo4j/core/cypher_session/adaptors/bolt/chunk_writer_io.rb 44 def close(zero_chunk = false) 45 flush(zero_chunk) 46 super 47 end
flush(zero_chunk = false)
click to toggle source
Calls superclass method
# File lib/neo4j/core/cypher_session/adaptors/bolt/chunk_writer_io.rb 36 def flush(zero_chunk = false) 37 write_without_chunking(buffer_result(zero_chunk)) 38 clear_buffer! 39 40 super() 41 end
write_buffer!(string, size)
click to toggle source
private
# File lib/neo4j/core/cypher_session/adaptors/bolt/chunk_writer_io.rb 50 def write_buffer!(string, size) 51 @output_buffer << string 52 @output_size = size 53 end
write_with_chunking(string)
click to toggle source
Write some bytes, splitting into chunks if necessary.
# File lib/neo4j/core/cypher_session/adaptors/bolt/chunk_writer_io.rb 15 def write_with_chunking(string) 16 until string.empty? 17 future_size = @output_size + string.size 18 if future_size >= MAX_CHUNK_SIZE 19 last = MAX_CHUNK_SIZE - @output_size 20 write_buffer!(string[0, last], MAX_CHUNK_SIZE) 21 string = string[last..-1] 22 23 write_without_chunking(buffer_result) 24 clear_buffer! 25 else 26 write_buffer!(string, future_size) 27 28 string = '' 29 end 30 end 31 end
Also aliased as: write