class Lumberjack::Beats::AckingProtocolV1
Public Class Methods
new(window_size)
click to toggle source
# File lib/lumberjack/beats/server.rb, line 543 def initialize(window_size) @next_ack = nil @window_size = window_size end
Public Instance Methods
ack?(sequence)
click to toggle source
# File lib/lumberjack/beats/server.rb, line 548 def ack?(sequence) # The first encoded event will contain the sequence number # this is needed to know when we should ack. @next_ack = compute_next_ack(sequence) if @next_ack.nil? sequence == @next_ack end
ack_frame(sequence)
click to toggle source
# File lib/lumberjack/beats/server.rb, line 555 def ack_frame(sequence) ["1A", sequence].pack("A*N") end
Private Instance Methods
compute_next_ack(sequence)
click to toggle source
# File lib/lumberjack/beats/server.rb, line 560 def compute_next_ack(sequence) (sequence + @window_size - 1) % SEQUENCE_MAX end