Sha256: d17ad65cdd9dde549138eea3a255b798cda1651fd46744266437a5353cc31d0d

Contents?: true

Size: 693 Bytes

Versions: 2

Compression:

Stored size: 693 Bytes

Contents

module SplitIoClient
  module Cache
    module Adapters
      module MemoryAdapters
        # Memory adapter implementation, which stores everything inside queue
        class QueueAdapter
          def initialize(size)
            @size = size
            @queue = Queue.new
          end

          # Adds data to queue in non-blocking mode
          def add_to_queue(data)
            @queue.push(data)
          end

          # Get all items from the queue
          def clear
            items = []

            loop { items << @queue.pop(true) }

          rescue ThreadError
            # Last queue item reached
            items
          end
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
splitclient-rb-3.1.0.pre.rc12 lib/cache/adapters/memory_adapters/queue_adapter.rb
splitclient-rb-3.1.0.pre.rc11 lib/cache/adapters/memory_adapters/queue_adapter.rb