Sha256: 1f05ddf180b5af8e74f7fbe7367d9f4e62d17d61dd3c0033936b10f5f44187b2

Contents?: true

Size: 813 Bytes

Versions: 14

Compression:

Stored size: 813 Bytes

Contents

# frozen_string_literal: true

require 'java'

# Conservative native JRuby/Java implementation of IOBuffer
# backed by a ByteArrayOutputStream and conversion between
# Ruby String and Java bytes
module Puma
  class JavaIOBuffer < java.io.ByteArrayOutputStream
    field_reader :buf
  end

  class IOBuffer
    BUF_DEFAULT_SIZE = 4096

    def initialize
      @buf = JavaIOBuffer.new(BUF_DEFAULT_SIZE)
    end

    def reset
      @buf.reset
    end

    def <<(str)
      bytes = str.to_java_bytes
      @buf.write(bytes, 0, bytes.length)
    end

    def append(*strs)
      strs.each { |s| self << s; }
    end

    def to_s
      String.from_java_bytes @buf.to_byte_array
    end

    alias_method :to_str, :to_s

    def used
      @buf.size
    end

    def capacity
      @buf.buf.length
    end
  end
end

Version data entries

14 entries across 14 versions & 3 rubygems

Version Path
piesync-puma-3.12.6.1 lib/puma/java_io_buffer.rb
piesync-puma-3.12.6 lib/puma/java_io_buffer.rb
puma-3.12.6-java lib/puma/java_io_buffer.rb
puma-3.12.6 lib/puma/java_io_buffer.rb
puma-3.12.5-java lib/puma/java_io_buffer.rb
puma-3.12.5 lib/puma/java_io_buffer.rb
puma-3.12.4-java lib/puma/java_io_buffer.rb
puma-3.12.4 lib/puma/java_io_buffer.rb
puma-3.12.2-java lib/puma/java_io_buffer.rb
puma-3.12.2 lib/puma/java_io_buffer.rb
chatops-rpc-0.0.2 fixtures/chatops-controller-example/vendor/bundle/ruby/2.5.0/gems/puma-3.12.1/lib/puma/java_io_buffer.rb
chatops-rpc-0.0.1 fixtures/chatops-controller-example/vendor/bundle/ruby/2.5.0/gems/puma-3.12.1/lib/puma/java_io_buffer.rb
puma-3.12.1-java lib/puma/java_io_buffer.rb
puma-3.12.1 lib/puma/java_io_buffer.rb