Sha256: 1c614740636648131273ea624b0c51d71c663b0ade73e97f337b9c74dc1fa09b

Contents?: true

Size: 786 Bytes

Versions: 1

Compression:

Stored size: 786 Bytes

Contents

module Kafka
  module Protocol
    class Decoder
      def initialize(io)
        @io = io
      end

      def int8
        read(1).unpack("C").first
      end

      def int16
        read(2).unpack("s>").first
      end

      def int32
        read(4).unpack("l>").first
      end

      def int64
        read(8).unpack("q>").first
      end

      def array
        size = int32
        size.times.map { yield }
      end

      def string
        size = int16

        if size == -1
          nil
        else
          read(size)
        end
      end

      def bytes
        size = int32

        if size == -1
          nil
        else
          read(size)
        end
      end

      def read(number_of_bytes)
        @io.read(number_of_bytes)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ruby-kafka-0.1.0.pre.alpha lib/kafka/protocol/decoder.rb