Class: Comet::SpannedDestinationLocation

Inherits:
Object
  • Object
show all
Defined in:
lib/comet/models/spanned_destination_location.rb

Overview

SpannedDestinationLocation is a typed class wrapper around the underlying Comet Server API data structure.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeSpannedDestinationLocation

Returns a new instance of SpannedDestinationLocation.



35
36
37
# File 'lib/comet/models/spanned_destination_location.rb', line 35

def initialize
  clear
end

Instance Attribute Details

#span_targetsObject

A list of underlying destinations, that will be combined and presented as one.



17
18
19
# File 'lib/comet/models/spanned_destination_location.rb', line 17

def span_targets
  @span_targets
end

#span_use_static_slotsObject

If true, this Spanned destination will use a consistent hashing scheme to immediately find specific files on exactly one of the target destinations. In the Static Slots mode, the span targets cannot be moved or merged, and the files must always remain in their original location.

If false, the Spanned destination system will search all targets to find the requested file. This is slightly slower, but allows you to freely merge, split, and reorder the underlying destination locations.

The default option is false.



30
31
32
# File 'lib/comet/models/spanned_destination_location.rb', line 30

def span_use_static_slots
  @span_use_static_slots
end

#unknown_json_fieldsObject

Returns the value of attribute unknown_json_fields.



33
34
35
# File 'lib/comet/models/spanned_destination_location.rb', line 33

def unknown_json_fields
  @unknown_json_fields
end

Instance Method Details

#clearObject



39
40
41
42
# File 'lib/comet/models/spanned_destination_location.rb', line 39

def clear
  @span_targets = []
  @unknown_json_fields = {}
end

#from_hash(obj) ⇒ Object

Parameters:

  • obj (Hash)

    The complete object as a Ruby hash

Raises:

  • (TypeError)


52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/comet/models/spanned_destination_location.rb', line 52

def from_hash(obj)
  raise TypeError, "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash

  obj.each do |k, v|
    case k
    when 'SpanTargets'
      if v.nil?
        @span_targets = []
      else
        @span_targets = Array.new(v.length)
        v.each_with_index do |v1, i1|
          @span_targets[i1] = Comet::DestinationLocation.new
          @span_targets[i1].from_hash(v1)
        end
      end
    when 'SpanUseStaticSlots'
      @span_use_static_slots = v
    else
      @unknown_json_fields[k] = v
    end
  end
end

#from_json(json_string) ⇒ Object

Parameters:

  • json_string (String)

    The complete object in JSON format

Raises:

  • (TypeError)


45
46
47
48
49
# File 'lib/comet/models/spanned_destination_location.rb', line 45

def from_json(json_string)
  raise TypeError, "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String

  from_hash(JSON.parse(json_string))
end

#to_hHash

Returns The complete object as a Ruby hash.

Returns:

  • (Hash)

    The complete object as a Ruby hash



87
88
89
# File 'lib/comet/models/spanned_destination_location.rb', line 87

def to_h
  to_hash
end

#to_hashHash

Returns The complete object as a Ruby hash.

Returns:

  • (Hash)

    The complete object as a Ruby hash



76
77
78
79
80
81
82
83
84
# File 'lib/comet/models/spanned_destination_location.rb', line 76

def to_hash
  ret = {}
  ret['SpanTargets'] = @span_targets
  ret['SpanUseStaticSlots'] = @span_use_static_slots
  @unknown_json_fields.each do |k, v|
    ret[k] = v
  end
  ret
end

#to_json(options = {}) ⇒ String

Returns The complete object as a JSON string.

Returns:

  • (String)

    The complete object as a JSON string



92
93
94
# File 'lib/comet/models/spanned_destination_location.rb', line 92

def to_json(options = {})
  to_hash.to_json(options)
end