Class: Kudzu::Adapter::Memory::Frontier
- Inherits:
-
Object
- Object
- Kudzu::Adapter::Memory::Frontier
- Defined in:
- lib/kudzu/adapter/memory/frontier.rb
Instance Method Summary collapse
- #clear ⇒ Object
- #dequeue(limit: 1) ⇒ Object
- #enqueue(links) ⇒ Object
-
#initialize(uuid) ⇒ Frontier
constructor
A new instance of Frontier.
Constructor Details
#initialize(uuid) ⇒ Frontier
Returns a new instance of Frontier.
5 6 7 8 9 10 |
# File 'lib/kudzu/adapter/memory/frontier.rb', line 5 def initialize(uuid) @uuid = uuid @monitor = Monitor.new @queue = [] @queued = {} end |
Instance Method Details
#clear ⇒ Object
31 32 33 34 |
# File 'lib/kudzu/adapter/memory/frontier.rb', line 31 def clear @queue.clear @queued.clear end |
#dequeue(limit: 1) ⇒ Object
22 23 24 25 26 27 28 29 |
# File 'lib/kudzu/adapter/memory/frontier.rb', line 22 def dequeue(limit: 1) @monitor.synchronize do links = @queue.shift(limit) links.each do |link| link.state = 1 end end end |
#enqueue(links) ⇒ Object
12 13 14 15 16 17 18 19 20 |
# File 'lib/kudzu/adapter/memory/frontier.rb', line 12 def enqueue(links) @monitor.synchronize do Array(links).each do |link| next if @queued.key?(link.url) @queued[link.url] = true @queue << link end end end |