class Fluent::CompressedMessagePackEventStream

def each(&block)

def each(&block)
  ensure_decompressed!
  super
end

def empty?

def empty?
  ensure_decompressed!
  super
end

def ensure_decompressed!

def ensure_decompressed!
  return if @decompressed_data
  @data = @decompressed_data = decompress(@data)
end

def ensure_unpacked!

def ensure_unpacked!
  ensure_decompressed!
  super
end

def initialize(data, cached_unpacker = nil, size = 0, unpacked_times: nil, unpacked_records: nil)

def initialize(data, cached_unpacker = nil, size = 0, unpacked_times: nil, unpacked_records: nil)
  super
  @decompressed_data = nil
  @compressed_data = data
end

def to_compressed_msgpack_stream(time_int: false)

def to_compressed_msgpack_stream(time_int: false)
  # time_int is always ignored because @data is always packed binary in this class
  @compressed_data
end

def to_msgpack_stream(time_int: false)

def to_msgpack_stream(time_int: false)
  ensure_decompressed!
  super
end