Class: Contrek::Concurrent::Position

Inherits:
Object
  • Object
show all
Includes:
Listable
Defined in:
lib/contrek/finder/concurrent/position.rb

Instance Attribute Summary collapse

Attributes included from Listable

#next, #owner, #prev

Instance Method Summary collapse

Constructor Details

#initialize(hub:, position:) ⇒ Position

Returns a new instance of Position.



8
9
10
11
12
# File 'lib/contrek/finder/concurrent/position.rb', line 8

def initialize(hub:, position:)
  key = position[:y] * hub.width + position[:x]
  @end_point = hub.payloads[key] ||= EndPoint.new
  @position = position
end

Instance Attribute Details

#end_pointObject (readonly)

Returns the value of attribute end_point.



6
7
8
# File 'lib/contrek/finder/concurrent/position.rb', line 6

def end_point
  @end_point
end

Instance Method Details

#after_add(new_queue) ⇒ Object



18
19
20
# File 'lib/contrek/finder/concurrent/position.rb', line 18

def after_add(new_queue)
  @end_point.queues << new_queue
end

#before_rem(old_queue) ⇒ Object



22
23
24
# File 'lib/contrek/finder/concurrent/position.rb', line 22

def before_rem(old_queue)
  @end_point.queues.delete(old_queue)
end

#payloadObject



14
15
16
# File 'lib/contrek/finder/concurrent/position.rb', line 14

def payload
  @position
end