Sha256: 8ee708e95bd8319ea16bc3318b1a13642314be81b4fbedb060e4136539189f6f

Contents?: true

Size: 531 Bytes

Versions: 37

Compression:

Stored size: 531 Bytes

Contents

module Pacer::Pipes
  class StreamUniqPipe < RubyPipe
    def initialize(buffer = 1000)
      super()
      @list = java.util.LinkedList.new
      @buffer = buffer
    end

    protected

    def processNextStart
      while true
        obj = @starts.next
        duplicate = @list.removeLastOccurrence(obj)
        @list.addLast obj
        if not duplicate
          if @buffer == 0
            @list.removeFirst
          else
            @buffer -= 1
          end
          return obj
        end
      end
    end
  end
end

Version data entries

37 entries across 37 versions & 1 rubygems

Version Path
pacer-2.0.24-java lib/pacer/pipe/stream_uniq_pipe.rb
pacer-2.0.22-java lib/pacer/pipe/stream_uniq_pipe.rb
pacer-2.0.20-java lib/pacer/pipe/stream_uniq_pipe.rb
pacer-2.0.19-java lib/pacer/pipe/stream_uniq_pipe.rb
pacer-2.0.18-java lib/pacer/pipe/stream_uniq_pipe.rb
pacer-2.0.17-java lib/pacer/pipe/stream_uniq_pipe.rb
pacer-2.0.16-java lib/pacer/pipe/stream_uniq_pipe.rb
pacer-2.0.15-java lib/pacer/pipe/stream_uniq_pipe.rb
pacer-2.0.14-java lib/pacer/pipe/stream_uniq_pipe.rb
pacer-2.0.13-java lib/pacer/pipe/stream_uniq_pipe.rb
pacer-2.0.12-java lib/pacer/pipe/stream_uniq_pipe.rb
pacer-2.0.10-java lib/pacer/pipe/stream_uniq_pipe.rb
pacer-2.0.10.pre-java lib/pacer/pipe/stream_uniq_pipe.rb
pacer-2.0.8-java lib/pacer/pipe/stream_uniq_pipe.rb
pacer-2.0.6-java lib/pacer/pipe/stream_uniq_pipe.rb
pacer-2.0.4.pre-java lib/pacer/pipe/stream_uniq_pipe.rb
pacer-2.0.0.pre-java lib/pacer/pipe/stream_uniq_pipe.rb
pacer-1.6.0-java lib/pacer/pipe/stream_uniq_pipe.rb
pacer-1.5.4-java lib/pacer/pipe/stream_uniq_pipe.rb
pacer-1.5.3-java lib/pacer/pipe/stream_uniq_pipe.rb