Parent

Methods

Class/Module Index [+]

Quicksearch

Fluent::TailInput::PositionFile

Public Class Methods

new(file, map, last_pos) click to toggle source
# File lib/fluent/plugin/in_tail.rb, line 398
def initialize(file, map, last_pos)
  @file = file
  @map = map
  @last_pos = last_pos
end
parse(file) click to toggle source
# File lib/fluent/plugin/in_tail.rb, line 419
def self.parse(file)
  map = {}
  file.pos = 0
  file.each_line {|line|
    m = /^([^\t]+)\t([0-9a-fA-F]+)\t([0-9a-fA-F]+)/.match(line)
    next unless m
    path = m[1]
    pos = m[2].to_i(16)
    ino = m[3].to_i(16)
    seek = file.pos - line.bytesize + path.bytesize + 1
    map[path] = FilePositionEntry.new(file, seek)
  }
  new(file, map, file.pos)
end

Public Instance Methods

[](path) click to toggle source
# File lib/fluent/plugin/in_tail.rb, line 404
def [](path)
  if m = @map[path]
    return m
  end

  @file.pos = @last_pos
  @file.write path
  @file.write "\t"
  seek = @file.pos
  @file.write "0000000000000000\t00000000\n"
  @last_pos = @file.pos

  @map[path] = FilePositionEntry.new(@file, seek)
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.