Sha256: 5a052d0f42b566e0aaaca8006c82734feb013eca4e94d8568414dd4e38e0ea62

Contents?: true

Size: 956 Bytes

Versions: 5

Compression:

Stored size: 956 Bytes

Contents

module Riak
  module Crdt
    # A map that queues up its operations for the parent {Map} to send to
    # Riak all at once.
    class BatchMap
      attr_reader :counters, :flags, :maps, :registers, :sets
      
      # @api private
      def initialize(parent)
        @parent = parent
        @queue = []

        initialize_collections
      end

      # @api private
      def operate(operation)
        @queue << operation
      end

      # @api private
      def operations
        @queue.map do |q|
          Operation::Update.new.tap do |op|
            op.type = :map
            op.value = q
          end
        end
      end
      
      private
      def initialize_collections
        @counters = @parent.counters.reparent self
        @flags = @parent.flags.reparent self
        @maps = @parent.maps.reparent self
        @registers = @parent.registers.reparent self
        @sets = @parent.sets.reparent self
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
riak-client-2.2.0.pre1 lib/riak/crdt/batch_map.rb
riak-client-2.1.0 lib/riak/crdt/batch_map.rb
riak-client-2.0.0 lib/riak/crdt/batch_map.rb
riak-client-2.0.0.rc2 lib/riak/crdt/batch_map.rb
riak-client-2.0.0.rc1 lib/riak/crdt/batch_map.rb