Class: DirectoryWatcher::RevScanner

Inherits:
EventableScanner show all
Defined in:
lib/directory_watcher/rev_scanner.rb

Defined Under Namespace

Classes: ScanTimer, Watcher

Instance Attribute Summary

Attributes inherited from EventableScanner

#iterations, #maximum_iterations, #watchers

Instance Method Summary collapse

Methods inherited from EventableScanner

#collection_queue, #finished_iterations?, #interval, #join, #on_modified, #on_removed, #on_scan, #pause, #paused?, #resume, #run, #running?, #start, #stop

Methods included from Logable

default_logger, #logger

Constructor Details

#initialize(glob, interval, collection_queue) ⇒ RevScanner

Returns a new instance of RevScanner.


31
32
33
# File 'lib/directory_watcher/rev_scanner.rb', line 31

def initialize( glob, interval, collection_queue )
  super(glob, interval, collection_queue)
end

Instance Method Details

#event_loopObject

Return the rev loop object

This is used during the startup, shutdown process and for the Watcher to attach and detach from the event loop


63
64
65
66
67
68
69
# File 'lib/directory_watcher/rev_scanner.rb', line 63

def event_loop
  if @loop_thread then
    @loop_thread._rev_loop
  else
    Thread.current._rev_loop
  end
end

#start_loop_with_attached_scan_timerObject


38
39
40
41
42
43
44
45
# File 'lib/directory_watcher/rev_scanner.rb', line 38

def start_loop_with_attached_scan_timer
  return if @loop_thread
  @timer = ScanTimer.new( self )
  @loop_thread = Thread.new {
    @timer.attach(event_loop)
    event_loop.run
  }
end

#stop_loopObject

Called by EventableScanner#stop to stop the loop as part of the shutdown process.


50
51
52
53
54
55
56
# File 'lib/directory_watcher/rev_scanner.rb', line 50

def stop_loop
  if @loop_thread then
    event_loop.stop rescue nil
    @loop_thread.kill
    @loop_thread = nil
  end
end