class LogStash::Outputs::Application_insights::Local_file

Attributes

bytesize[R]
events_count[R]
file_size[R]
oldest_event_time[R]

Public Class Methods

new( filename, is_gzip_file ) click to toggle source
# File lib/logstash/outputs/application_insights/local_file.rb, line 33
def initialize ( filename, is_gzip_file )
  @file_name = filename
  @writer = write_file = File.new( @file_name, "wb" )
  @writer = Zlib::GzipWriter.new( write_file ) if is_gzip_file
  @read_file = nil
  @bytesize = 0
  @events_count = 0
  @first_block_number = nil
  @next_block_number = nil
  @next_event_count = nil
end

Public Instance Methods

<<( block ) click to toggle source
# File lib/logstash/outputs/application_insights/local_file.rb, line 86
def << ( block )
  @bytesize += block.bytesize
  @events_count += block.events_count

  @writer.write( block.bytes )
  State.instance.dec_upload_bytesize( block.bytesize )

  @oldest_event_time = block.oldest_event_time if @oldest_event_time.nil? || block.oldest_event_time < @oldest_event_time
  @done_time = block.done_time if @done_time.nil? || block.done_time > @done_time
end
close_read() click to toggle source
# File lib/logstash/outputs/application_insights/local_file.rb, line 50
def close_read
  @read_file.close if @read_file
  @read_file = nil
end
dispose() click to toggle source
# File lib/logstash/outputs/application_insights/local_file.rb, line 98
def dispose
  @bytesize = nil
  @events_count = nil
  @done_time = nil
  @oldest_event_time = nil
  seal
  close_read
  File.delete( @file_name ) if @file_name
  @file_name = nil
end
get_next_block() click to toggle source
# File lib/logstash/outputs/application_insights/local_file.rb, line 66
def get_next_block
  block = Block.new
  block.bytes = @read_file.read(BLOB_BLOCK_MAX_BYTESIZE)
  return nil if block.bytes.nil? || 0 == block.bytes.length

  block.bytesize = block.bytes.length
  State.instance.inc_upload_bytesize( block.bytesize )

  block.done_time = @done_time
  block.oldest_event_time = @oldest_event_time
  block.block_numbers = [ @next_block_number ]
  block.events_count = @next_event_count

  @next_event_count = @events_per_block
  @next_block_number += 1

  block
end
open_read() click to toggle source
# File lib/logstash/outputs/application_insights/local_file.rb, line 55
def open_read
  @read_file = File.new( @file_name, "rb" ) # File.new( @file_name, File::RDWR )
  @file_size =  @read_file.size
  @blocks_num = ( @file_size + BLOB_BLOCK_MAX_BYTESIZE - 1 ) / BLOB_BLOCK_MAX_BYTESIZE
  @events_per_block = @events_count / @blocks_num

  @next_event_count = @events_per_block + ( @events_count % @blocks_num )
  @first_block_number ||= Block.generate_block_numbers( @blocks_num )
  @next_block_number = @first_block_number
end
seal() click to toggle source
# File lib/logstash/outputs/application_insights/local_file.rb, line 45
def seal
  @writer.close if @writer
  @writer = nil
end