# frozen_string_literal: true

# Copyright 2014-2020 Aerospike, Inc.
#
# Portions may be licensed to Aerospike, Inc. under one or more contributor
# license agreements.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at http:#www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.

module Aerospike
  class NodePartitions
    attr_accessor :node, :parts_full, :parts_partial, :record_count, :record_max, :parts_unavailable

    def initialize(node)
        @node= node
        @parts_full=    []
        @parts_partial= []
        @record_count= 0
        @parts_unavailable= 0
        @record_max= 0
    end

    def to_s
      "Node #{@node.inspect}: full: #{@parts_full.length}, partial: #{@parts_partial.length}"
    end

    def add_partition(partition_status)
      partition_status.digest.nil? ? @parts_full << partition_status : @parts_partial << partition_status
    end
  end
end
