Class: LogStash::Inputs::FileListener

Inherits:
Object
  • Object
show all
Defined in:
lib/logstash/inputs/file_listener.rb

Overview

As and when a new WatchedFile is processed FileWatch asks for an instance of this class for the file path of that WatchedFile. All subsequent callbacks are sent via this listener instance. The file is essentially a stream and the path is the identity of that stream.

Direct Known Subclasses

FlushableListener

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(path, input, data = nil) ⇒ FileListener

construct with link back to the input plugin instance.



10
11
12
13
# File 'lib/logstash/inputs/file_listener.rb', line 10

def initialize(path, input, data = nil)
  @path, @input = path, input
  @data = data
end

Instance Attribute Details

#dataObject (readonly)

Returns the value of attribute data.



8
9
10
# File 'lib/logstash/inputs/file_listener.rb', line 8

def data
  @data
end

#inputObject (readonly)

Returns the value of attribute input.



8
9
10
# File 'lib/logstash/inputs/file_listener.rb', line 8

def input
  @input
end

#pathObject (readonly)

Returns the value of attribute path.



8
9
10
# File 'lib/logstash/inputs/file_listener.rb', line 8

def path
  @path
end

Instance Method Details

#accept(data) ⇒ Object



36
37
38
39
40
# File 'lib/logstash/inputs/file_listener.rb', line 36

def accept(data)
  # and push transient data filled dup listener downstream
  input.log_line_received(path, data)
  input.codec.accept(self.class.new(path, input, data))
end

#deletedObject



31
32
33
34
# File 'lib/logstash/inputs/file_listener.rb', line 31

def deleted
  input.codec.evict(path)
  input.handle_deletable_path(path)
end

#eofObject



18
19
# File 'lib/logstash/inputs/file_listener.rb', line 18

def eof
end

#errorObject



21
22
# File 'lib/logstash/inputs/file_listener.rb', line 21

def error
end

#openedObject



15
16
# File 'lib/logstash/inputs/file_listener.rb', line 15

def opened
end

#process_event(event) ⇒ Object



42
43
44
# File 'lib/logstash/inputs/file_listener.rb', line 42

def process_event(event)
  input.post_process_this(event, path)
end

#reading_completedObject



24
25
# File 'lib/logstash/inputs/file_listener.rb', line 24

def reading_completed
end

#timed_outObject



27
28
29
# File 'lib/logstash/inputs/file_listener.rb', line 27

def timed_out
  input.codec.evict(path)
end