class ElasticAPM::Transport::Connection::ProxyPipe::Write

@api private

def self.finalize(io)

def self.finalize(io)
  proc { io.close }
end

def bytes_sent

def bytes_sent
  @bytes_sent.value
end

def close

def close
  io.close
end

def closed?

def closed?
  io.closed?
end

def enable_compression!

def enable_compression!
  io.binmode
  @io = Zlib::GzipWriter.new(io)
end

def initialize(io, compress: true)

def initialize(io, compress: true)
  @io = io
  @compress = compress
  @bytes_sent = Concurrent::AtomicFixnum.new(0)
  @config = ElasticAPM.agent&.config # this is silly, fix Logging
  return unless compress
  enable_compression!
  ObjectSpace.define_finalizer(self, self.class.finalize(@io))
end

def write(str)

def write(str)
  io.puts(str).tap do
    @bytes_sent.update do |curr|
      @compress ? io.tell : curr + str.bytesize
    end
  end
end