Sha256: 38253f02ad58d59030f87754c0d3de77b2be51d99c423a0a3acf2739c9fd4e9f
Contents?: true
Size: 1.08 KB
Versions: 5
Compression:
Stored size: 1.08 KB
Contents
require 'zlib' require 'digest' module NFAgent class Chunk attr_reader :created_at ::DEFAULT_TIME_OUT = 60 def initialize(max_size = 500) @max_size = max_size @created_at = Time.now @array = [] @submitter = Submitter.new(Config.client_key) end def <<(line) @array << line end def full? @array.size >= @max_size end def expired? (Time.now - @created_at > ::DEFAULT_TIME_OUT) && !@array.empty? end # TODO: Is this the right place for compression, encoding and check summing? Perhaps it should go into the submitter to that it can be deferred def dump Payload.new do |payload| Log.info("Dumping payload from chunk (#{@array.size} lines)") payload.line_count = @array.size payload.chunk_expired = expired? payload.data = Encoder.encode64url(Zlib::Deflate.deflate(@array.join("\n"), Zlib::BEST_COMPRESSION)) payload.checksum = Digest::SHA1.hexdigest(payload.data) end end def clear @array.clear @created_at = Time.now end end end
Version data entries
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
nfagent-0.9.31 | lib/nfagent/chunk.rb |
nfagent-0.9.19 | lib/nfagent/chunk.rb |
nfagent-0.9.17 | lib/nfagent/chunk.rb |
nfagent-0.9.15 | lib/nfagent/chunk.rb |
nfagent-0.9.13 | lib/nfagent/chunk.rb |